From 9793d3e8ed76fe4346772a7811668a4111bc1f6d Mon Sep 17 00:00:00 2001 From: Andrew Stitcher Date: Mon, 4 Jan 2010 21:16:10 +0000 Subject: Branch for 0.6 release git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.6-release@895787 13f79535-47bb-0310-9956-ffa450edef68 --- trunk/.gitignore | 60 + trunk/qpid/KEYS | 255 + trunk/qpid/LICENSE | 7 + trunk/qpid/NOTICE | 8 + trunk/qpid/bin/LICENSE | 206 + trunk/qpid/bin/NOTICE | 8 + trunk/qpid/bin/mvn-deploy-qpid-java.sh | 71 + trunk/qpid/bin/release.sh | 251 + trunk/qpid/bin/set_svn_properties.sh | 133 + trunk/qpid/buildtools/LICENSE | 206 + trunk/qpid/buildtools/NOTICE | 8 + trunk/qpid/buildtools/buildCreator/build.config | 37 + trunk/qpid/buildtools/buildCreator/buildCreator.py | 1464 + trunk/qpid/buildtools/buildCreator/qpid.build | 55 + trunk/qpid/cc/LICENSE | 206 + trunk/qpid/cc/NOTICE | 8 + trunk/qpid/cc/README | 84 + trunk/qpid/cc/config.properties | 25 + trunk/qpid/cc/config.xml | 37 + trunk/qpid/cc/config/bdbstore-cpp-trunk.xml | 54 + trunk/qpid/cc/config/cpp-perftests.xml | 63 + trunk/qpid/cc/config/cpp-trunk.xml | 59 + trunk/qpid/cc/config/dotnet-trunk.xml | 63 + trunk/qpid/cc/config/example-automation.xml | 58 + trunk/qpid/cc/config/java-jmstck.xml | 63 + trunk/qpid/cc/config/java-perftests.xml | 72 + trunk/qpid/cc/config/java-trunk.xml | 142 + .../qpid/cc/config/java/cpp.noprefetch.testprofile | 4 + trunk/qpid/cc/config/java/cpp.testprofile | 3 + trunk/qpid/cc/config/java/jndi.properties | 42 + trunk/qpid/cc/dashboard-config.xml | 31 + trunk/qpid/cc/scripts/bdbstorecppbuild.sh | 24 + trunk/qpid/cc/scripts/build.xml | 30 + trunk/qpid/cc/scripts/check_examples.sh | 69 + trunk/qpid/cc/scripts/cppbuild-perftests.sh | 23 + trunk/qpid/cc/scripts/cppbuild.sh | 21 + trunk/qpid/cc/scripts/dotnetbuild.sh | 21 + trunk/qpid/cc/scripts/javaconfig.sh | 27 + trunk/qpid/cc/scripts/javajmstck.sh | 80 + trunk/qpid/cc/scripts/javareport.sh | 25 + trunk/qpid/cc/scripts/runbroker.sh | 42 + trunk/qpid/cc/scripts/stopbroker.sh | 31 + trunk/qpid/cc/scripts/verify | 100 + trunk/qpid/cc/scripts/verify_all | 166 + trunk/qpid/cpp/BuildInstallSettings.cmake | 132 + trunk/qpid/cpp/CMakeLists.txt | 101 + trunk/qpid/cpp/CTestConfig.cmake | 13 + trunk/qpid/cpp/DESIGN | 78 + trunk/qpid/cpp/INSTALL | 356 + trunk/qpid/cpp/INSTALL-WINDOWS | 153 + trunk/qpid/cpp/LICENSE | 234 + trunk/qpid/cpp/Makefile.am | 33 + trunk/qpid/cpp/NOTICE | 21 + trunk/qpid/cpp/README | 38 + trunk/qpid/cpp/RELEASE_NOTES | 21 + trunk/qpid/cpp/SSL | 71 + trunk/qpid/cpp/bindings/qmf/Makefile.am | 33 + trunk/qpid/cpp/bindings/qmf/python/Makefile.am | 48 + trunk/qpid/cpp/bindings/qmf/python/python.i | 143 + trunk/qpid/cpp/bindings/qmf/python/qmf.py | 1540 + trunk/qpid/cpp/bindings/qmf/qmfengine.i | 58 + trunk/qpid/cpp/bindings/qmf/ruby/Makefile.am | 44 + trunk/qpid/cpp/bindings/qmf/ruby/qmf.rb | 1343 + trunk/qpid/cpp/bindings/qmf/ruby/ruby.i | 106 + trunk/qpid/cpp/bindings/qmf/tests/Makefile.am | 27 + trunk/qpid/cpp/bindings/qmf/tests/agent_ruby.rb | 204 + trunk/qpid/cpp/bindings/qmf/tests/python_agent.py | 230 + .../qpid/cpp/bindings/qmf/tests/python_console.py | 178 + trunk/qpid/cpp/bindings/qmf/tests/ruby_console.rb | 174 + .../cpp/bindings/qmf/tests/ruby_console_test.rb | 234 + .../qpid/cpp/bindings/qmf/tests/run_interop_tests | 121 + trunk/qpid/cpp/bindings/qmf/tests/test_base.rb | 73 + trunk/qpid/cpp/boost-1.32-support/Makefile | 11 + trunk/qpid/cpp/boost-1.32-support/README | 8 + trunk/qpid/cpp/boost-1.32-support/boost.tar.gz | Bin 0 -> 99495 bytes trunk/qpid/cpp/boost-1.32-support/main.patch | 37 + trunk/qpid/cpp/boost-1.32-support/supressions | 867 + trunk/qpid/cpp/bootstrap | 27 + trunk/qpid/cpp/build-aux/compile | 142 + trunk/qpid/cpp/build-aux/config.guess | 1501 + trunk/qpid/cpp/build-aux/config.rpath | 614 + trunk/qpid/cpp/build-aux/config.sub | 1619 ++ trunk/qpid/cpp/build-aux/depcomp | 584 + trunk/qpid/cpp/build-aux/install-sh | 507 + trunk/qpid/cpp/build-aux/mdate-sh | 201 + trunk/qpid/cpp/build-aux/missing | 367 + trunk/qpid/cpp/configure.ac | 534 + trunk/qpid/cpp/docs/api/CMakeLists.txt | 40 + trunk/qpid/cpp/docs/api/Makefile.am | 39 + trunk/qpid/cpp/docs/api/developer.doxygen.in | 1241 + trunk/qpid/cpp/docs/api/doxygen.css | 494 + trunk/qpid/cpp/docs/api/doxygen_mainpage.h | 133 + trunk/qpid/cpp/docs/api/footer.html | 31 + trunk/qpid/cpp/docs/api/header.html | 50 + trunk/qpid/cpp/docs/api/stylesheet.css | 494 + trunk/qpid/cpp/docs/api/tabs.css | 123 + trunk/qpid/cpp/docs/api/user.doxygen.in | 1218 + trunk/qpid/cpp/docs/man/Makefile.am | 47 + trunk/qpid/cpp/docs/man/qpidd.x | 46 + trunk/qpid/cpp/etc/CMakeLists.txt | 20 + trunk/qpid/cpp/etc/Makefile.am | 59 + trunk/qpid/cpp/etc/emacs/qpid-c++-mode.el | 226 + trunk/qpid/cpp/etc/qpidc.conf | 23 + trunk/qpid/cpp/etc/qpidd | 103 + trunk/qpid/cpp/etc/qpidd.conf | 24 + trunk/qpid/cpp/etc/sasl2/qpidd.conf | 45 + trunk/qpid/cpp/examples/CMakeLists.txt | 100 + trunk/qpid/cpp/examples/Makefile.am | 49 + trunk/qpid/cpp/examples/README.txt | 165 + trunk/qpid/cpp/examples/README.verify | 26 + trunk/qpid/cpp/examples/direct/CMakeLists.txt | 22 + trunk/qpid/cpp/examples/direct/Makefile.am | 51 + trunk/qpid/cpp/examples/direct/declare_queues.cpp | 85 + .../examples/direct/direct_declare_queues.vcproj | 394 + .../examples/direct/direct_direct_producer.vcproj | 394 + .../cpp/examples/direct/direct_listener.vcproj | 394 + trunk/qpid/cpp/examples/direct/direct_producer.cpp | 109 + trunk/qpid/cpp/examples/direct/listener.cpp | 109 + trunk/qpid/cpp/examples/direct/verify | 23 + trunk/qpid/cpp/examples/direct/verify.in | 15 + trunk/qpid/cpp/examples/direct/verify_cpp_python | 4 + .../qpid/cpp/examples/direct/verify_cpp_python.in | 14 + trunk/qpid/cpp/examples/direct/verify_python_cpp | 5 + .../qpid/cpp/examples/direct/verify_python_cpp.in | 15 + trunk/qpid/cpp/examples/examples.sln | 315 + trunk/qpid/cpp/examples/failover/CMakeLists.txt | 22 + trunk/qpid/cpp/examples/failover/Makefile.am | 47 + .../qpid/cpp/examples/failover/declare_queues.cpp | 61 + .../failover/failover_declare_queues.vcproj | 394 + .../failover/failover_replaying_sender.vcproj | 394 + .../failover/failover_resuming_receiver.vcproj | 394 + .../cpp/examples/failover/replaying_sender.cpp | 97 + .../cpp/examples/failover/resuming_receiver.cpp | 127 + trunk/qpid/cpp/examples/fanout/CMakeLists.txt | 21 + trunk/qpid/cpp/examples/fanout/Makefile.am | 46 + .../examples/fanout/fanout_fanout_producer.vcproj | 394 + .../cpp/examples/fanout/fanout_listener.vcproj | 394 + trunk/qpid/cpp/examples/fanout/fanout_producer.cpp | 105 + trunk/qpid/cpp/examples/fanout/listener.cpp | 125 + trunk/qpid/cpp/examples/fanout/verify | 25 + trunk/qpid/cpp/examples/fanout/verify.in | 43 + trunk/qpid/cpp/examples/fanout/verify_cpp_python | 7 + .../qpid/cpp/examples/fanout/verify_cpp_python.in | 27 + trunk/qpid/cpp/examples/fanout/verify_python_cpp | 7 + .../qpid/cpp/examples/fanout/verify_python_cpp.in | 29 + trunk/qpid/cpp/examples/makedist.mk | 23 + trunk/qpid/cpp/examples/messaging/CMakeLists.txt | 35 + trunk/qpid/cpp/examples/messaging/Makefile.am | 67 + trunk/qpid/cpp/examples/messaging/client.cpp | 76 + trunk/qpid/cpp/examples/messaging/drain.cpp | 125 + trunk/qpid/cpp/examples/messaging/map_receiver.cpp | 56 + trunk/qpid/cpp/examples/messaging/map_sender.cpp | 69 + .../cpp/examples/messaging/messaging_client.vcproj | 411 + .../messaging/messaging_map_receiver.vcproj | 411 + .../examples/messaging/messaging_map_sender.vcproj | 411 + .../messaging/messaging_queue_listener.vcproj | 411 + .../messaging/messaging_queue_receiver.vcproj | 411 + .../messaging/messaging_queue_sender.vcproj | 411 + .../cpp/examples/messaging/messaging_server.vcproj | 411 + .../messaging/messaging_topic_listener.vcproj | 411 + .../messaging/messaging_topic_receiver.vcproj | 411 + .../messaging/messaging_topic_sender.vcproj | 411 + .../qpid/cpp/examples/messaging/queue_receiver.cpp | 59 + trunk/qpid/cpp/examples/messaging/queue_sender.cpp | 60 + trunk/qpid/cpp/examples/messaging/readme.txt | 146 + trunk/qpid/cpp/examples/messaging/server.cpp | 76 + trunk/qpid/cpp/examples/messaging/spout.cpp | 190 + .../qpid/cpp/examples/messaging/topic_receiver.cpp | 59 + trunk/qpid/cpp/examples/messaging/topic_sender.cpp | 78 + trunk/qpid/cpp/examples/pub-sub/CMakeLists.txt | 21 + trunk/qpid/cpp/examples/pub-sub/Makefile.am | 47 + .../examples/pub-sub/pub-sub_topic_listener.vcproj | 394 + .../pub-sub/pub-sub_topic_publisher.vcproj | 394 + trunk/qpid/cpp/examples/pub-sub/topic_listener.cpp | 173 + .../qpid/cpp/examples/pub-sub/topic_publisher.cpp | 129 + trunk/qpid/cpp/examples/pub-sub/verify | 23 + trunk/qpid/cpp/examples/pub-sub/verify.in | 59 + trunk/qpid/cpp/examples/pub-sub/verify_cpp_python | 6 + .../qpid/cpp/examples/pub-sub/verify_cpp_python.in | 55 + trunk/qpid/cpp/examples/pub-sub/verify_python_cpp | 6 + .../qpid/cpp/examples/pub-sub/verify_python_cpp.in | 59 + trunk/qpid/cpp/examples/qmf-agent/Makefile | 85 + trunk/qpid/cpp/examples/qmf-agent/example.cpp | 206 + trunk/qpid/cpp/examples/qmf-agent/example_gen.mak | 10 + trunk/qpid/cpp/examples/qmf-agent/qmf_agent.vcproj | 443 + trunk/qpid/cpp/examples/qmf-agent/schema.xml | 64 + trunk/qpid/cpp/examples/qmf-console/CMakeLists.txt | 23 + trunk/qpid/cpp/examples/qmf-console/Makefile.am | 55 + .../qpid/cpp/examples/qmf-console/cluster-qmon.cpp | 179 + trunk/qpid/cpp/examples/qmf-console/console.cpp | 150 + trunk/qpid/cpp/examples/qmf-console/ping.cpp | 134 + .../qpid/cpp/examples/qmf-console/printevents.cpp | 125 + .../qmf-console/qmf-console_console.vcproj | 394 + .../examples/qmf-console/qmf-console_ping.vcproj | 419 + .../qmf-console/qmf-console_printevents.vcproj | 394 + .../qmf-console/qmf-console_queuestats.vcproj | 394 + trunk/qpid/cpp/examples/qmf-console/queuestats.cpp | 142 + .../cpp/examples/request-response/CMakeLists.txt | 21 + .../qpid/cpp/examples/request-response/Makefile.am | 47 + .../qpid/cpp/examples/request-response/client.cpp | 163 + .../request-response_client.vcproj | 394 + .../request-response_server.vcproj | 394 + .../qpid/cpp/examples/request-response/server.cpp | 161 + trunk/qpid/cpp/examples/request-response/verify | 24 + trunk/qpid/cpp/examples/request-response/verify.in | 19 + .../examples/request-response/verify_cpp_python | 6 + .../examples/request-response/verify_cpp_python.in | 15 + .../examples/request-response/verify_python_cpp | 5 + .../examples/request-response/verify_python_cpp.in | 18 + trunk/qpid/cpp/examples/test.txt | 1 + trunk/qpid/cpp/examples/tradedemo/CMakeLists.txt | 22 + trunk/qpid/cpp/examples/tradedemo/Makefile.am | 46 + .../qpid/cpp/examples/tradedemo/declare_queues.cpp | 98 + .../qpid/cpp/examples/tradedemo/topic_listener.cpp | 183 + .../cpp/examples/tradedemo/topic_publisher.cpp | 271 + .../tradedemo/tradedemo_declare_queues.vcproj | 394 + .../tradedemo/tradedemo_topic_listener.vcproj | 394 + .../tradedemo/tradedemo_topic_publisher.vcproj | 394 + trunk/qpid/cpp/examples/verify | 120 + trunk/qpid/cpp/examples/verify_all | 54 + .../qpid/cpp/examples/xml-exchange/CMakeLists.txt | 24 + trunk/qpid/cpp/examples/xml-exchange/Makefile.am | 49 + trunk/qpid/cpp/examples/xml-exchange/README | 53 + .../cpp/examples/xml-exchange/declare_queues.cpp | 98 + trunk/qpid/cpp/examples/xml-exchange/listener.cpp | 107 + .../cpp/examples/xml-exchange/xml_producer.cpp | 113 + trunk/qpid/cpp/include/qmf/Agent.h | 287 + trunk/qpid/cpp/include/qmf/AgentObject.h | 95 + trunk/qpid/cpp/include/qmf/Connection.h | 125 + trunk/qpid/cpp/include/qmf/ConnectionSettings.h | 32 + trunk/qpid/cpp/include/qmf/ConsoleObject.h | 94 + trunk/qpid/cpp/include/qmf/QmfImportExport.h | 33 + trunk/qpid/cpp/include/qmf/engine/Agent.h | 209 + .../cpp/include/qmf/engine/ConnectionSettings.h | 150 + trunk/qpid/cpp/include/qmf/engine/Console.h | 236 + trunk/qpid/cpp/include/qmf/engine/Event.h | 32 + trunk/qpid/cpp/include/qmf/engine/Message.h | 41 + trunk/qpid/cpp/include/qmf/engine/Object.h | 56 + trunk/qpid/cpp/include/qmf/engine/ObjectId.h | 67 + .../cpp/include/qmf/engine/QmfEngineImportExport.h | 33 + trunk/qpid/cpp/include/qmf/engine/Query.h | 112 + .../cpp/include/qmf/engine/ResilientConnection.h | 165 + trunk/qpid/cpp/include/qmf/engine/Schema.h | 210 + trunk/qpid/cpp/include/qmf/engine/Typecode.h | 53 + trunk/qpid/cpp/include/qmf/engine/Value.h | 121 + trunk/qpid/cpp/include/qpid/Address.h | 85 + trunk/qpid/cpp/include/qpid/CommonImportExport.h | 33 + trunk/qpid/cpp/include/qpid/Exception.h | 93 + trunk/qpid/cpp/include/qpid/InlineAllocator.h | 101 + trunk/qpid/cpp/include/qpid/InlineVector.h | 68 + trunk/qpid/cpp/include/qpid/Msg.h | 76 + trunk/qpid/cpp/include/qpid/Options.h | 265 + trunk/qpid/cpp/include/qpid/RangeSet.h | 330 + trunk/qpid/cpp/include/qpid/SessionId.h | 60 + trunk/qpid/cpp/include/qpid/Url.h | 93 + .../qpid/cpp/include/qpid/agent/ManagementAgent.h | 163 + .../cpp/include/qpid/agent/QmfAgentImportExport.h | 33 + trunk/qpid/cpp/include/qpid/client/AsyncSession.h | 38 + .../cpp/include/qpid/client/ClientImportExport.h | 33 + trunk/qpid/cpp/include/qpid/client/Completion.h | 71 + trunk/qpid/cpp/include/qpid/client/Connection.h | 222 + .../cpp/include/qpid/client/ConnectionSettings.h | 133 + .../cpp/include/qpid/client/FailoverListener.h | 81 + .../qpid/cpp/include/qpid/client/FailoverManager.h | 137 + trunk/qpid/cpp/include/qpid/client/FlowControl.h | 75 + trunk/qpid/cpp/include/qpid/client/Future.h | 59 + .../cpp/include/qpid/client/FutureCompletion.h | 49 + trunk/qpid/cpp/include/qpid/client/FutureResult.h | 49 + trunk/qpid/cpp/include/qpid/client/Handle.h | 71 + trunk/qpid/cpp/include/qpid/client/LocalQueue.h | 120 + trunk/qpid/cpp/include/qpid/client/Message.h | 175 + .../qpid/cpp/include/qpid/client/MessageListener.h | 101 + .../cpp/include/qpid/client/MessageReplayTracker.h | 73 + trunk/qpid/cpp/include/qpid/client/QueueOptions.h | 129 + trunk/qpid/cpp/include/qpid/client/Session.h | 39 + .../cpp/include/qpid/client/SessionBase_0_10.h | 109 + trunk/qpid/cpp/include/qpid/client/Subscription.h | 123 + .../cpp/include/qpid/client/SubscriptionManager.h | 292 + .../cpp/include/qpid/client/SubscriptionSettings.h | 123 + trunk/qpid/cpp/include/qpid/client/TypedResult.h | 65 + .../qpid/cpp/include/qpid/client/amqp0_10/Codecs.h | 61 + trunk/qpid/cpp/include/qpid/console/Agent.h | 58 + trunk/qpid/cpp/include/qpid/console/Broker.h | 133 + trunk/qpid/cpp/include/qpid/console/ClassKey.h | 66 + .../cpp/include/qpid/console/ConsoleImportExport.h | 33 + .../cpp/include/qpid/console/ConsoleListener.h | 97 + trunk/qpid/cpp/include/qpid/console/Event.h | 86 + trunk/qpid/cpp/include/qpid/console/Object.h | 123 + trunk/qpid/cpp/include/qpid/console/ObjectId.h | 69 + trunk/qpid/cpp/include/qpid/console/Package.h | 78 + trunk/qpid/cpp/include/qpid/console/Schema.h | 105 + .../cpp/include/qpid/console/SequenceManager.h | 54 + .../qpid/cpp/include/qpid/console/SessionManager.h | 205 + trunk/qpid/cpp/include/qpid/console/Value.h | 213 + trunk/qpid/cpp/include/qpid/framing/Array.h | 97 + trunk/qpid/cpp/include/qpid/framing/Buffer.h | 136 + trunk/qpid/cpp/include/qpid/framing/FieldTable.h | 128 + trunk/qpid/cpp/include/qpid/framing/FieldValue.h | 435 + trunk/qpid/cpp/include/qpid/framing/List.h | 77 + .../cpp/include/qpid/framing/ProtocolVersion.h | 58 + .../qpid/cpp/include/qpid/framing/SequenceNumber.h | 79 + trunk/qpid/cpp/include/qpid/framing/SequenceSet.h | 69 + trunk/qpid/cpp/include/qpid/framing/StructHelper.h | 57 + trunk/qpid/cpp/include/qpid/framing/Uuid.h | 90 + trunk/qpid/cpp/include/qpid/framing/amqp_types.h | 66 + .../cpp/include/qpid/framing/amqp_types_full.h | 38 + trunk/qpid/cpp/include/qpid/log/Logger.h | 114 + trunk/qpid/cpp/include/qpid/log/Options.h | 50 + trunk/qpid/cpp/include/qpid/log/Selector.h | 71 + trunk/qpid/cpp/include/qpid/log/SinkOptions.h | 64 + trunk/qpid/cpp/include/qpid/log/Statement.h | 121 + trunk/qpid/cpp/include/qpid/management/Args.h | 44 + .../qpid/cpp/include/qpid/management/Manageable.h | 72 + .../cpp/include/qpid/management/ManagementEvent.h | 49 + .../cpp/include/qpid/management/ManagementObject.h | 187 + trunk/qpid/cpp/include/qpid/messaging/Address.h | 176 + trunk/qpid/cpp/include/qpid/messaging/Codec.h | 44 + trunk/qpid/cpp/include/qpid/messaging/Connection.h | 105 + .../qpid/cpp/include/qpid/messaging/ListContent.h | 90 + trunk/qpid/cpp/include/qpid/messaging/ListView.h | 67 + trunk/qpid/cpp/include/qpid/messaging/MapContent.h | 90 + trunk/qpid/cpp/include/qpid/messaging/MapView.h | 70 + trunk/qpid/cpp/include/qpid/messaging/Message.h | 76 + trunk/qpid/cpp/include/qpid/messaging/Receiver.h | 130 + trunk/qpid/cpp/include/qpid/messaging/Sender.h | 86 + trunk/qpid/cpp/include/qpid/messaging/Session.h | 148 + trunk/qpid/cpp/include/qpid/messaging/Variant.h | 168 + trunk/qpid/cpp/include/qpid/sys/Condition.h | 33 + trunk/qpid/cpp/include/qpid/sys/ExceptionHolder.h | 74 + trunk/qpid/cpp/include/qpid/sys/IOHandle.h | 49 + trunk/qpid/cpp/include/qpid/sys/IntegerTypes.h | 31 + trunk/qpid/cpp/include/qpid/sys/Monitor.h | 49 + trunk/qpid/cpp/include/qpid/sys/Mutex.h | 91 + trunk/qpid/cpp/include/qpid/sys/Runnable.h | 51 + trunk/qpid/cpp/include/qpid/sys/StrError.h | 36 + trunk/qpid/cpp/include/qpid/sys/SystemInfo.h | 85 + trunk/qpid/cpp/include/qpid/sys/Thread.h | 65 + trunk/qpid/cpp/include/qpid/sys/Time.h | 173 + trunk/qpid/cpp/include/qpid/sys/posix/Condition.h | 86 + .../qpid/cpp/include/qpid/sys/posix/IntegerTypes.h | 26 + trunk/qpid/cpp/include/qpid/sys/posix/Mutex.h | 158 + .../qpid/cpp/include/qpid/sys/posix/PrivatePosix.h | 77 + trunk/qpid/cpp/include/qpid/sys/posix/Time.h | 34 + trunk/qpid/cpp/include/qpid/sys/posix/check.h | 52 + .../qpid/cpp/include/qpid/sys/windows/Condition.h | 80 + .../cpp/include/qpid/sys/windows/IntegerTypes.h | 36 + trunk/qpid/cpp/include/qpid/sys/windows/Mutex.h | 188 + trunk/qpid/cpp/include/qpid/sys/windows/Time.h | 36 + trunk/qpid/cpp/include/qpid/sys/windows/check.h | 48 + trunk/qpid/cpp/m4/ac_pkg_swig.m4 | 118 + trunk/qpid/cpp/m4/clock_time.m4 | 30 + trunk/qpid/cpp/m4/compiler-flags.m4 | 23 + trunk/qpid/cpp/m4/cppunit.m4 | 89 + trunk/qpid/cpp/m4/extensions.m4 | 59 + trunk/qpid/cpp/m4/python.m4 | 168 + trunk/qpid/cpp/make-dist | 105 + trunk/qpid/cpp/managementgen/CMakeLists.txt | 26 + trunk/qpid/cpp/managementgen/Makefile.am | 36 + trunk/qpid/cpp/managementgen/qmf-gen | 90 + trunk/qpid/cpp/managementgen/qmfgen/__init__.py | 19 + trunk/qpid/cpp/managementgen/qmfgen/generate.py | 468 + .../cpp/managementgen/qmfgen/management-types.xml | 56 + trunk/qpid/cpp/managementgen/qmfgen/schema.py | 1348 + .../qpid/cpp/managementgen/qmfgen/templates/Args.h | 42 + .../qmfgen/templates/CMakeLists.cmake | 39 + .../cpp/managementgen/qmfgen/templates/Class.cpp | 180 + .../cpp/managementgen/qmfgen/templates/Class.h | 111 + .../cpp/managementgen/qmfgen/templates/Event.cpp | 78 + .../cpp/managementgen/qmfgen/templates/Event.h | 59 + .../cpp/managementgen/qmfgen/templates/Makefile.mk | 40 + .../cpp/managementgen/qmfgen/templates/Package.cpp | 32 + .../cpp/managementgen/qmfgen/templates/Package.h | 41 + trunk/qpid/cpp/packaging/NSIS/qpid-icon.ico | Bin 0 -> 52972 bytes trunk/qpid/cpp/packaging/NSIS/qpid-icon.png | Bin 0 -> 97992 bytes .../cpp/packaging/NSIS/qpid-install-banner.bmp | Bin 0 -> 9742 bytes .../cpp/packaging/NSIS/qpid-install-banner.png | Bin 0 -> 57218 bytes trunk/qpid/cpp/qpid-autotools-install | 205 + trunk/qpid/cpp/qpid-config.in | 98 + trunk/qpid/cpp/rubygen/0-10/allsegmenttypes.rb | 52 + trunk/qpid/cpp/rubygen/0-10/exceptions.rb | 73 + trunk/qpid/cpp/rubygen/0-10/handlers.rb | 47 + trunk/qpid/cpp/rubygen/0-10/specification.rb | 389 + trunk/qpid/cpp/rubygen/0-10/typecode.rb | 117 + trunk/qpid/cpp/rubygen/MethodBodyDefaultVisitor.rb | 53 + trunk/qpid/cpp/rubygen/README | 17 + trunk/qpid/cpp/rubygen/amqpgen.rb | 549 + trunk/qpid/cpp/rubygen/cppgen.rb | 449 + .../rubygen/framing.0-10/MethodBodyConstVisitor.rb | 45 + .../framing.0-10/MethodBodyDefaultVisitor.rb | 54 + .../cpp/rubygen/framing.0-10/MethodBodyFactory.rb | 58 + .../qpid/cpp/rubygen/framing.0-10/MethodHolder.rb | 0 trunk/qpid/cpp/rubygen/framing.0-10/Operations.rb | 121 + .../cpp/rubygen/framing.0-10/OperationsInvoker.rb | 117 + trunk/qpid/cpp/rubygen/framing.0-10/Proxy.rb | 109 + trunk/qpid/cpp/rubygen/framing.0-10/Session.rb | 417 + .../cpp/rubygen/framing.0-10/all_method_bodies.rb | 39 + trunk/qpid/cpp/rubygen/framing.0-10/constants.rb | 206 + .../cpp/rubygen/framing.0-10/frame_body_lists.rb | 49 + trunk/qpid/cpp/rubygen/framing.0-10/structs.rb | 615 + trunk/qpid/cpp/rubygen/generate | 160 + trunk/qpid/cpp/src/CMakeLists.txt | 949 + trunk/qpid/cpp/src/Makefile.am | 825 + trunk/qpid/cpp/src/acl.mk | 38 + trunk/qpid/cpp/src/cluster.cmake | 157 + trunk/qpid/cpp/src/cluster.mk | 107 + trunk/qpid/cpp/src/config.h.cmake | 56 + trunk/qpid/cpp/src/generate.sh | 67 + trunk/qpid/cpp/src/posix/QpiddBroker.cpp | 179 + trunk/qpid/cpp/src/prof | 39 + trunk/qpid/cpp/src/qmf.mk | 113 + trunk/qpid/cpp/src/qmf/engine/Agent.cpp | 857 + trunk/qpid/cpp/src/qmf/engine/BrokerProxyImpl.cpp | 777 + trunk/qpid/cpp/src/qmf/engine/BrokerProxyImpl.h | 239 + .../cpp/src/qmf/engine/ConnectionSettingsImpl.cpp | 278 + .../cpp/src/qmf/engine/ConnectionSettingsImpl.h | 63 + trunk/qpid/cpp/src/qmf/engine/ConsoleImpl.cpp | 419 + trunk/qpid/cpp/src/qmf/engine/ConsoleImpl.h | 145 + trunk/qpid/cpp/src/qmf/engine/MessageImpl.cpp | 43 + trunk/qpid/cpp/src/qmf/engine/MessageImpl.h | 44 + trunk/qpid/cpp/src/qmf/engine/ObjectIdImpl.cpp | 199 + trunk/qpid/cpp/src/qmf/engine/ObjectIdImpl.h | 72 + trunk/qpid/cpp/src/qmf/engine/ObjectImpl.cpp | 232 + trunk/qpid/cpp/src/qmf/engine/ObjectImpl.h | 76 + trunk/qpid/cpp/src/qmf/engine/Protocol.cpp | 52 + trunk/qpid/cpp/src/qmf/engine/Protocol.h | 69 + trunk/qpid/cpp/src/qmf/engine/QueryImpl.cpp | 103 + trunk/qpid/cpp/src/qmf/engine/QueryImpl.h | 102 + .../cpp/src/qmf/engine/ResilientConnection.cpp | 489 + trunk/qpid/cpp/src/qmf/engine/SchemaImpl.cpp | 610 + trunk/qpid/cpp/src/qmf/engine/SchemaImpl.h | 223 + trunk/qpid/cpp/src/qmf/engine/SequenceManager.cpp | 96 + trunk/qpid/cpp/src/qmf/engine/SequenceManager.h | 68 + trunk/qpid/cpp/src/qmf/engine/ValueImpl.cpp | 264 + trunk/qpid/cpp/src/qmf/engine/ValueImpl.h | 150 + trunk/qpid/cpp/src/qmfc.mk | 55 + trunk/qpid/cpp/src/qpid/Address.cpp | 58 + trunk/qpid/cpp/src/qpid/DataDir.cpp | 50 + trunk/qpid/cpp/src/qpid/DataDir.h | 54 + trunk/qpid/cpp/src/qpid/Exception.cpp | 55 + trunk/qpid/cpp/src/qpid/Modules.cpp | 95 + trunk/qpid/cpp/src/qpid/Modules.h | 44 + trunk/qpid/cpp/src/qpid/Options.cpp | 469 + trunk/qpid/cpp/src/qpid/Plugin.cpp | 94 + trunk/qpid/cpp/src/qpid/Plugin.h | 129 + trunk/qpid/cpp/src/qpid/RefCounted.h | 61 + trunk/qpid/cpp/src/qpid/RefCountedBuffer.cpp | 53 + trunk/qpid/cpp/src/qpid/RefCountedBuffer.h | 89 + trunk/qpid/cpp/src/qpid/Serializer.h | 197 + trunk/qpid/cpp/src/qpid/SessionId.cpp | 47 + trunk/qpid/cpp/src/qpid/SessionState.cpp | 284 + trunk/qpid/cpp/src/qpid/SessionState.h | 235 + trunk/qpid/cpp/src/qpid/SharedObject.h | 55 + trunk/qpid/cpp/src/qpid/StringUtils.cpp | 50 + trunk/qpid/cpp/src/qpid/StringUtils.h | 45 + trunk/qpid/cpp/src/qpid/Url.cpp | 212 + trunk/qpid/cpp/src/qpid/Version.h | 44 + trunk/qpid/cpp/src/qpid/acl/Acl.cpp | 165 + trunk/qpid/cpp/src/qpid/acl/Acl.h | 84 + trunk/qpid/cpp/src/qpid/acl/AclData.cpp | 236 + trunk/qpid/cpp/src/qpid/acl/AclData.h | 83 + trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp | 96 + trunk/qpid/cpp/src/qpid/acl/AclReader.cpp | 550 + trunk/qpid/cpp/src/qpid/acl/AclReader.h | 118 + trunk/qpid/cpp/src/qpid/acl/management-schema.xml | 44 + .../cpp/src/qpid/agent/ManagementAgentImpl.cpp | 920 + .../qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 242 + trunk/qpid/cpp/src/qpid/amqp_0_10/Array.cpp | 34 + trunk/qpid/cpp/src/qpid/amqp_0_10/Array.h | 124 + trunk/qpid/cpp/src/qpid/amqp_0_10/Body.h | 55 + trunk/qpid/cpp/src/qpid/amqp_0_10/Codec.h | 213 + trunk/qpid/cpp/src/qpid/amqp_0_10/Command.h | 62 + trunk/qpid/cpp/src/qpid/amqp_0_10/CommmandPacker.h | 60 + trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.cpp | 153 + trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.h | 83 + trunk/qpid/cpp/src/qpid/amqp_0_10/Control.h | 70 + trunk/qpid/cpp/src/qpid/amqp_0_10/Decimal.h | 51 + trunk/qpid/cpp/src/qpid/amqp_0_10/Exception.h | 96 + trunk/qpid/cpp/src/qpid/amqp_0_10/FrameHeader.cpp | 50 + trunk/qpid/cpp/src/qpid/amqp_0_10/FrameHeader.h | 90 + trunk/qpid/cpp/src/qpid/amqp_0_10/Header.cpp | 34 + trunk/qpid/cpp/src/qpid/amqp_0_10/Header.h | 53 + trunk/qpid/cpp/src/qpid/amqp_0_10/Holder.h | 103 + trunk/qpid/cpp/src/qpid/amqp_0_10/Map.cpp | 66 + trunk/qpid/cpp/src/qpid/amqp_0_10/Map.h | 188 + trunk/qpid/cpp/src/qpid/amqp_0_10/Packer.h | 195 + .../cpp/src/qpid/amqp_0_10/SerializableString.h | 62 + .../qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp | 325 + trunk/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.h | 116 + trunk/qpid/cpp/src/qpid/amqp_0_10/Struct.h | 60 + trunk/qpid/cpp/src/qpid/amqp_0_10/Struct32.cpp | 36 + trunk/qpid/cpp/src/qpid/amqp_0_10/Struct32.h | 64 + trunk/qpid/cpp/src/qpid/amqp_0_10/Unit.cpp | 65 + trunk/qpid/cpp/src/qpid/amqp_0_10/Unit.h | 82 + trunk/qpid/cpp/src/qpid/amqp_0_10/UnitHandler.h | 35 + .../qpid/cpp/src/qpid/amqp_0_10/UnknownStruct.cpp | 34 + trunk/qpid/cpp/src/qpid/amqp_0_10/UnknownStruct.h | 55 + trunk/qpid/cpp/src/qpid/amqp_0_10/UnknownType.cpp | 56 + trunk/qpid/cpp/src/qpid/amqp_0_10/UnknownType.h | 87 + trunk/qpid/cpp/src/qpid/amqp_0_10/apply.h | 86 + trunk/qpid/cpp/src/qpid/amqp_0_10/built_in_types.h | 171 + .../qpid/cpp/src/qpid/amqp_0_10/complex_types.cpp | 84 + trunk/qpid/cpp/src/qpid/assert.cpp | 45 + trunk/qpid/cpp/src/qpid/assert.h | 38 + trunk/qpid/cpp/src/qpid/broker/AclModule.h | 281 + trunk/qpid/cpp/src/qpid/broker/Bridge.cpp | 324 + trunk/qpid/cpp/src/qpid/broker/Bridge.h | 109 + trunk/qpid/cpp/src/qpid/broker/Broker.cpp | 473 + trunk/qpid/cpp/src/qpid/broker/Broker.h | 274 + .../qpid/cpp/src/qpid/broker/BrokerImportExport.h | 33 + trunk/qpid/cpp/src/qpid/broker/Connection.cpp | 383 + trunk/qpid/cpp/src/qpid/broker/Connection.h | 171 + .../qpid/cpp/src/qpid/broker/ConnectionFactory.cpp | 64 + trunk/qpid/cpp/src/qpid/broker/ConnectionFactory.h | 52 + .../qpid/cpp/src/qpid/broker/ConnectionHandler.cpp | 271 + trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.h | 95 + trunk/qpid/cpp/src/qpid/broker/ConnectionState.h | 122 + trunk/qpid/cpp/src/qpid/broker/ConnectionToken.h | 40 + trunk/qpid/cpp/src/qpid/broker/Consumer.h | 53 + trunk/qpid/cpp/src/qpid/broker/Daemon.cpp | 219 + trunk/qpid/cpp/src/qpid/broker/Daemon.h | 84 + trunk/qpid/cpp/src/qpid/broker/Deliverable.h | 44 + .../cpp/src/qpid/broker/DeliverableMessage.cpp | 43 + .../qpid/cpp/src/qpid/broker/DeliverableMessage.h | 46 + trunk/qpid/cpp/src/qpid/broker/DeliveryAdapter.h | 53 + trunk/qpid/cpp/src/qpid/broker/DeliveryId.h | 35 + trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp | 190 + trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.h | 142 + trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp | 184 + trunk/qpid/cpp/src/qpid/broker/DirectExchange.h | 75 + trunk/qpid/cpp/src/qpid/broker/DtxAck.cpp | 73 + trunk/qpid/cpp/src/qpid/broker/DtxAck.h | 48 + trunk/qpid/cpp/src/qpid/broker/DtxBuffer.cpp | 83 + trunk/qpid/cpp/src/qpid/broker/DtxBuffer.h | 57 + trunk/qpid/cpp/src/qpid/broker/DtxManager.cpp | 171 + trunk/qpid/cpp/src/qpid/broker/DtxManager.h | 74 + trunk/qpid/cpp/src/qpid/broker/DtxTimeout.cpp | 35 + trunk/qpid/cpp/src/qpid/broker/DtxTimeout.h | 48 + trunk/qpid/cpp/src/qpid/broker/DtxWorkRecord.cpp | 177 + trunk/qpid/cpp/src/qpid/broker/DtxWorkRecord.h | 81 + trunk/qpid/cpp/src/qpid/broker/Exchange.cpp | 360 + trunk/qpid/cpp/src/qpid/broker/Exchange.h | 193 + .../qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp | 112 + trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h | 93 + trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.cpp | 38 + trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.h | 46 + trunk/qpid/cpp/src/qpid/broker/FanOutExchange.cpp | 122 + trunk/qpid/cpp/src/qpid/broker/FanOutExchange.h | 74 + trunk/qpid/cpp/src/qpid/broker/HandlerImpl.h | 53 + trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp | 220 + trunk/qpid/cpp/src/qpid/broker/HeadersExchange.h | 97 + .../cpp/src/qpid/broker/IncompleteMessageList.cpp | 84 + .../cpp/src/qpid/broker/IncompleteMessageList.h | 58 + trunk/qpid/cpp/src/qpid/broker/Link.cpp | 481 + trunk/qpid/cpp/src/qpid/broker/Link.h | 145 + trunk/qpid/cpp/src/qpid/broker/LinkRegistry.cpp | 344 + trunk/qpid/cpp/src/qpid/broker/LinkRegistry.h | 151 + trunk/qpid/cpp/src/qpid/broker/Message.cpp | 428 + trunk/qpid/cpp/src/qpid/broker/Message.h | 199 + trunk/qpid/cpp/src/qpid/broker/MessageAdapter.cpp | 70 + trunk/qpid/cpp/src/qpid/broker/MessageAdapter.h | 58 + trunk/qpid/cpp/src/qpid/broker/MessageBuilder.cpp | 131 + trunk/qpid/cpp/src/qpid/broker/MessageBuilder.h | 59 + trunk/qpid/cpp/src/qpid/broker/MessageStore.h | 203 + .../cpp/src/qpid/broker/MessageStoreModule.cpp | 179 + .../qpid/cpp/src/qpid/broker/MessageStoreModule.h | 87 + trunk/qpid/cpp/src/qpid/broker/NameGenerator.cpp | 32 + trunk/qpid/cpp/src/qpid/broker/NameGenerator.h | 39 + .../qpid/cpp/src/qpid/broker/NullMessageStore.cpp | 165 + trunk/qpid/cpp/src/qpid/broker/NullMessageStore.h | 98 + trunk/qpid/cpp/src/qpid/broker/OwnershipToken.h | 38 + trunk/qpid/cpp/src/qpid/broker/Persistable.h | 63 + trunk/qpid/cpp/src/qpid/broker/PersistableConfig.h | 45 + .../qpid/cpp/src/qpid/broker/PersistableExchange.h | 45 + .../cpp/src/qpid/broker/PersistableMessage.cpp | 183 + .../qpid/cpp/src/qpid/broker/PersistableMessage.h | 140 + trunk/qpid/cpp/src/qpid/broker/PersistableQueue.h | 87 + trunk/qpid/cpp/src/qpid/broker/Queue.cpp | 1130 + trunk/qpid/cpp/src/qpid/broker/Queue.h | 354 + trunk/qpid/cpp/src/qpid/broker/QueueBindings.cpp | 46 + trunk/qpid/cpp/src/qpid/broker/QueueBindings.h | 61 + trunk/qpid/cpp/src/qpid/broker/QueueCleaner.cpp | 57 + trunk/qpid/cpp/src/qpid/broker/QueueCleaner.h | 59 + trunk/qpid/cpp/src/qpid/broker/QueueEvents.cpp | 122 + trunk/qpid/cpp/src/qpid/broker/QueueEvents.h | 84 + trunk/qpid/cpp/src/qpid/broker/QueueListeners.cpp | 81 + trunk/qpid/cpp/src/qpid/broker/QueueListeners.h | 75 + trunk/qpid/cpp/src/qpid/broker/QueuePolicy.cpp | 315 + trunk/qpid/cpp/src/qpid/broker/QueuePolicy.h | 120 + trunk/qpid/cpp/src/qpid/broker/QueueRegistry.cpp | 113 + trunk/qpid/cpp/src/qpid/broker/QueueRegistry.h | 144 + trunk/qpid/cpp/src/qpid/broker/QueuedMessage.h | 48 + trunk/qpid/cpp/src/qpid/broker/RateFlowcontrol.h | 105 + trunk/qpid/cpp/src/qpid/broker/RateTracker.cpp | 51 + trunk/qpid/cpp/src/qpid/broker/RateTracker.h | 57 + trunk/qpid/cpp/src/qpid/broker/RecoverableConfig.h | 45 + .../qpid/cpp/src/qpid/broker/RecoverableExchange.h | 52 + .../qpid/cpp/src/qpid/broker/RecoverableMessage.h | 59 + trunk/qpid/cpp/src/qpid/broker/RecoverableQueue.h | 59 + .../cpp/src/qpid/broker/RecoverableTransaction.h | 49 + .../qpid/cpp/src/qpid/broker/RecoveredDequeue.cpp | 47 + trunk/qpid/cpp/src/qpid/broker/RecoveredDequeue.h | 57 + .../qpid/cpp/src/qpid/broker/RecoveredEnqueue.cpp | 44 + trunk/qpid/cpp/src/qpid/broker/RecoveredEnqueue.h | 58 + trunk/qpid/cpp/src/qpid/broker/RecoveryManager.h | 61 + .../cpp/src/qpid/broker/RecoveryManagerImpl.cpp | 279 + .../qpid/cpp/src/qpid/broker/RecoveryManagerImpl.h | 59 + trunk/qpid/cpp/src/qpid/broker/RetryList.cpp | 60 + trunk/qpid/cpp/src/qpid/broker/RetryList.h | 54 + .../qpid/cpp/src/qpid/broker/SaslAuthenticator.cpp | 418 + trunk/qpid/cpp/src/qpid/broker/SaslAuthenticator.h | 57 + .../qpid/cpp/src/qpid/broker/SecureConnection.cpp | 87 + trunk/qpid/cpp/src/qpid/broker/SecureConnection.h | 60 + .../src/qpid/broker/SecureConnectionFactory.cpp | 73 + .../cpp/src/qpid/broker/SecureConnectionFactory.h | 50 + trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp | 771 + trunk/qpid/cpp/src/qpid/broker/SemanticState.h | 242 + trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp | 759 + trunk/qpid/cpp/src/qpid/broker/SessionAdapter.h | 271 + trunk/qpid/cpp/src/qpid/broker/SessionContext.h | 55 + trunk/qpid/cpp/src/qpid/broker/SessionHandler.cpp | 121 + trunk/qpid/cpp/src/qpid/broker/SessionHandler.h | 99 + trunk/qpid/cpp/src/qpid/broker/SessionManager.cpp | 104 + trunk/qpid/cpp/src/qpid/broker/SessionManager.h | 87 + trunk/qpid/cpp/src/qpid/broker/SessionState.cpp | 386 + trunk/qpid/cpp/src/qpid/broker/SessionState.h | 175 + trunk/qpid/cpp/src/qpid/broker/SignalHandler.cpp | 50 + trunk/qpid/cpp/src/qpid/broker/SignalHandler.h | 50 + trunk/qpid/cpp/src/qpid/broker/System.cpp | 83 + trunk/qpid/cpp/src/qpid/broker/System.h | 51 + trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp | 343 + trunk/qpid/cpp/src/qpid/broker/TopicExchange.h | 84 + .../qpid/cpp/src/qpid/broker/TransactionalStore.h | 60 + trunk/qpid/cpp/src/qpid/broker/TxAccept.cpp | 100 + trunk/qpid/cpp/src/qpid/broker/TxAccept.h | 83 + trunk/qpid/cpp/src/qpid/broker/TxBuffer.cpp | 80 + trunk/qpid/cpp/src/qpid/broker/TxBuffer.h | 119 + trunk/qpid/cpp/src/qpid/broker/TxOp.h | 46 + trunk/qpid/cpp/src/qpid/broker/TxOpVisitor.h | 97 + trunk/qpid/cpp/src/qpid/broker/TxPublish.cpp | 108 + trunk/qpid/cpp/src/qpid/broker/TxPublish.h | 92 + trunk/qpid/cpp/src/qpid/broker/Vhost.cpp | 49 + trunk/qpid/cpp/src/qpid/broker/Vhost.h | 50 + .../cpp/src/qpid/broker/posix/BrokerDefaults.cpp | 40 + .../cpp/src/qpid/broker/windows/BrokerDefaults.cpp | 41 + .../src/qpid/broker/windows/SaslAuthenticator.cpp | 190 + trunk/qpid/cpp/src/qpid/client/Bounds.cpp | 71 + trunk/qpid/cpp/src/qpid/client/Bounds.h | 49 + .../cpp/src/qpid/client/ChainableFrameHandler.h | 47 + trunk/qpid/cpp/src/qpid/client/Completion.cpp | 40 + trunk/qpid/cpp/src/qpid/client/CompletionImpl.h | 51 + trunk/qpid/cpp/src/qpid/client/Connection.cpp | 159 + trunk/qpid/cpp/src/qpid/client/ConnectionAccess.h | 41 + .../qpid/cpp/src/qpid/client/ConnectionHandler.cpp | 317 + trunk/qpid/cpp/src/qpid/client/ConnectionHandler.h | 131 + trunk/qpid/cpp/src/qpid/client/ConnectionImpl.cpp | 277 + trunk/qpid/cpp/src/qpid/client/ConnectionImpl.h | 100 + .../cpp/src/qpid/client/ConnectionSettings.cpp | 55 + trunk/qpid/cpp/src/qpid/client/Connector.cpp | 82 + trunk/qpid/cpp/src/qpid/client/Connector.h | 84 + trunk/qpid/cpp/src/qpid/client/Demux.cpp | 132 + trunk/qpid/cpp/src/qpid/client/Demux.h | 103 + trunk/qpid/cpp/src/qpid/client/Dispatcher.cpp | 151 + trunk/qpid/cpp/src/qpid/client/Dispatcher.h | 87 + trunk/qpid/cpp/src/qpid/client/Execution.h | 53 + .../qpid/cpp/src/qpid/client/FailoverListener.cpp | 89 + trunk/qpid/cpp/src/qpid/client/FailoverManager.cpp | 131 + trunk/qpid/cpp/src/qpid/client/Future.cpp | 46 + .../qpid/cpp/src/qpid/client/FutureCompletion.cpp | 48 + trunk/qpid/cpp/src/qpid/client/FutureResult.cpp | 43 + trunk/qpid/cpp/src/qpid/client/LoadPlugins.cpp | 52 + trunk/qpid/cpp/src/qpid/client/LocalQueue.cpp | 52 + trunk/qpid/cpp/src/qpid/client/LocalQueueImpl.cpp | 78 + trunk/qpid/cpp/src/qpid/client/LocalQueueImpl.h | 108 + trunk/qpid/cpp/src/qpid/client/Message.cpp | 62 + trunk/qpid/cpp/src/qpid/client/MessageImpl.cpp | 71 + trunk/qpid/cpp/src/qpid/client/MessageImpl.h | 80 + trunk/qpid/cpp/src/qpid/client/MessageListener.cpp | 24 + .../cpp/src/qpid/client/MessageReplayTracker.cpp | 78 + trunk/qpid/cpp/src/qpid/client/PrivateImplRef.h | 94 + trunk/qpid/cpp/src/qpid/client/QueueOptions.cpp | 123 + trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp | 387 + trunk/qpid/cpp/src/qpid/client/Results.cpp | 75 + trunk/qpid/cpp/src/qpid/client/Results.h | 56 + trunk/qpid/cpp/src/qpid/client/Sasl.h | 70 + trunk/qpid/cpp/src/qpid/client/SaslFactory.cpp | 379 + trunk/qpid/cpp/src/qpid/client/SaslFactory.h | 48 + .../qpid/cpp/src/qpid/client/SessionBase_0_10.cpp | 77 + .../cpp/src/qpid/client/SessionBase_0_10Access.h | 42 + trunk/qpid/cpp/src/qpid/client/SessionImpl.cpp | 817 + trunk/qpid/cpp/src/qpid/client/SessionImpl.h | 253 + trunk/qpid/cpp/src/qpid/client/SslConnector.cpp | 400 + trunk/qpid/cpp/src/qpid/client/StateManager.cpp | 80 + trunk/qpid/cpp/src/qpid/client/StateManager.h | 48 + trunk/qpid/cpp/src/qpid/client/Subscription.cpp | 55 + .../qpid/cpp/src/qpid/client/SubscriptionImpl.cpp | 169 + trunk/qpid/cpp/src/qpid/client/SubscriptionImpl.h | 125 + .../cpp/src/qpid/client/SubscriptionManager.cpp | 102 + .../src/qpid/client/SubscriptionManagerImpl.cpp | 162 + .../cpp/src/qpid/client/SubscriptionManagerImpl.h | 278 + trunk/qpid/cpp/src/qpid/client/TCPConnector.cpp | 327 + trunk/qpid/cpp/src/qpid/client/TCPConnector.h | 117 + .../cpp/src/qpid/client/amqp0_10/AcceptTracker.cpp | 111 + .../cpp/src/qpid/client/amqp0_10/AcceptTracker.h | 85 + .../src/qpid/client/amqp0_10/AddressResolution.cpp | 819 + .../src/qpid/client/amqp0_10/AddressResolution.h | 64 + trunk/qpid/cpp/src/qpid/client/amqp0_10/Codecs.cpp | 299 + .../cpp/src/qpid/client/amqp0_10/CodecsInternal.h | 41 + .../src/qpid/client/amqp0_10/ConnectionImpl.cpp | 208 + .../cpp/src/qpid/client/amqp0_10/ConnectionImpl.h | 72 + .../src/qpid/client/amqp0_10/IncomingMessages.cpp | 303 + .../src/qpid/client/amqp0_10/IncomingMessages.h | 98 + .../cpp/src/qpid/client/amqp0_10/MessageSink.h | 52 + .../cpp/src/qpid/client/amqp0_10/MessageSource.h | 47 + .../src/qpid/client/amqp0_10/OutgoingMessage.cpp | 67 + .../cpp/src/qpid/client/amqp0_10/OutgoingMessage.h | 48 + .../cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp | 194 + .../cpp/src/qpid/client/amqp0_10/ReceiverImpl.h | 148 + .../cpp/src/qpid/client/amqp0_10/SenderImpl.cpp | 144 + .../qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.h | 140 + .../cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | 433 + .../cpp/src/qpid/client/amqp0_10/SessionImpl.h | 212 + .../cpp/src/qpid/client/windows/SaslFactory.cpp | 146 + trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp | 979 + trunk/qpid/cpp/src/qpid/cluster/Cluster.h | 283 + trunk/qpid/cpp/src/qpid/cluster/ClusterMap.cpp | 175 + trunk/qpid/cpp/src/qpid/cluster/ClusterMap.h | 105 + trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp | 172 + trunk/qpid/cpp/src/qpid/cluster/ClusterSettings.h | 50 + trunk/qpid/cpp/src/qpid/cluster/Connection.cpp | 479 + trunk/qpid/cpp/src/qpid/cluster/Connection.h | 210 + .../qpid/cpp/src/qpid/cluster/ConnectionCodec.cpp | 82 + trunk/qpid/cpp/src/qpid/cluster/ConnectionCodec.h | 82 + trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp | 281 + trunk/qpid/cpp/src/qpid/cluster/Cpg.h | 236 + trunk/qpid/cpp/src/qpid/cluster/Decoder.cpp | 65 + trunk/qpid/cpp/src/qpid/cluster/Decoder.h | 59 + trunk/qpid/cpp/src/qpid/cluster/Dispatchable.h | 52 + trunk/qpid/cpp/src/qpid/cluster/ErrorCheck.cpp | 155 + trunk/qpid/cpp/src/qpid/cluster/ErrorCheck.h | 90 + trunk/qpid/cpp/src/qpid/cluster/Event.cpp | 136 + trunk/qpid/cpp/src/qpid/cluster/Event.h | 116 + trunk/qpid/cpp/src/qpid/cluster/EventFrame.cpp | 41 + trunk/qpid/cpp/src/qpid/cluster/EventFrame.h | 60 + trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp | 85 + trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.h | 89 + .../qpid/cpp/src/qpid/cluster/FailoverExchange.cpp | 99 + trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.h | 68 + .../qpid/cpp/src/qpid/cluster/InitialStatusMap.cpp | 197 + trunk/qpid/cpp/src/qpid/cluster/InitialStatusMap.h | 75 + .../cpp/src/qpid/cluster/LockedConnectionMap.h | 65 + .../qpid/cpp/src/qpid/cluster/McastFrameHandler.h | 46 + trunk/qpid/cpp/src/qpid/cluster/MemberSet.cpp | 52 + trunk/qpid/cpp/src/qpid/cluster/MemberSet.h | 43 + trunk/qpid/cpp/src/qpid/cluster/Multicaster.cpp | 103 + trunk/qpid/cpp/src/qpid/cluster/Multicaster.h | 87 + .../src/qpid/cluster/NoOpConnectionOutputHandler.h | 47 + trunk/qpid/cpp/src/qpid/cluster/Numbering.h | 70 + .../cpp/src/qpid/cluster/OutputInterceptor.cpp | 116 + .../qpid/cpp/src/qpid/cluster/OutputInterceptor.h | 79 + trunk/qpid/cpp/src/qpid/cluster/PollableQueue.h | 74 + trunk/qpid/cpp/src/qpid/cluster/PollerDispatch.cpp | 67 + trunk/qpid/cpp/src/qpid/cluster/PollerDispatch.h | 60 + .../qpid/cpp/src/qpid/cluster/ProxyInputHandler.h | 57 + trunk/qpid/cpp/src/qpid/cluster/Quorum.h | 32 + trunk/qpid/cpp/src/qpid/cluster/Quorum_cman.cpp | 103 + trunk/qpid/cpp/src/qpid/cluster/Quorum_cman.h | 64 + trunk/qpid/cpp/src/qpid/cluster/Quorum_null.h | 42 + trunk/qpid/cpp/src/qpid/cluster/RetractClient.cpp | 61 + trunk/qpid/cpp/src/qpid/cluster/RetractClient.h | 49 + trunk/qpid/cpp/src/qpid/cluster/StoreStatus.cpp | 110 + trunk/qpid/cpp/src/qpid/cluster/StoreStatus.h | 64 + trunk/qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 484 + trunk/qpid/cpp/src/qpid/cluster/UpdateClient.h | 119 + trunk/qpid/cpp/src/qpid/cluster/UpdateExchange.cpp | 47 + trunk/qpid/cpp/src/qpid/cluster/UpdateExchange.h | 45 + trunk/qpid/cpp/src/qpid/cluster/UpdateReceiver.h | 42 + trunk/qpid/cpp/src/qpid/cluster/WatchDogPlugin.cpp | 136 + .../cpp/src/qpid/cluster/management-schema.xml | 61 + trunk/qpid/cpp/src/qpid/cluster/qpidd_watchdog.cpp | 63 + trunk/qpid/cpp/src/qpid/cluster/types.h | 83 + trunk/qpid/cpp/src/qpid/console/Agent.cpp | 30 + trunk/qpid/cpp/src/qpid/console/Broker.cpp | 328 + trunk/qpid/cpp/src/qpid/console/ClassKey.cpp | 105 + trunk/qpid/cpp/src/qpid/console/Event.cpp | 205 + trunk/qpid/cpp/src/qpid/console/Object.cpp | 384 + trunk/qpid/cpp/src/qpid/console/ObjectId.cpp | 91 + trunk/qpid/cpp/src/qpid/console/Package.cpp | 41 + trunk/qpid/cpp/src/qpid/console/Schema.cpp | 165 + .../qpid/cpp/src/qpid/console/SequenceManager.cpp | 48 + trunk/qpid/cpp/src/qpid/console/SessionManager.cpp | 481 + trunk/qpid/cpp/src/qpid/console/Value.cpp | 169 + trunk/qpid/cpp/src/qpid/framing/AMQBody.cpp | 64 + trunk/qpid/cpp/src/qpid/framing/AMQBody.h | 86 + .../cpp/src/qpid/framing/AMQCommandControlBody.h | 70 + trunk/qpid/cpp/src/qpid/framing/AMQContentBody.cpp | 46 + trunk/qpid/cpp/src/qpid/framing/AMQContentBody.h | 55 + trunk/qpid/cpp/src/qpid/framing/AMQDataBlock.h | 42 + trunk/qpid/cpp/src/qpid/framing/AMQFrame.cpp | 173 + trunk/qpid/cpp/src/qpid/framing/AMQFrame.h | 113 + trunk/qpid/cpp/src/qpid/framing/AMQHeaderBody.cpp | 63 + trunk/qpid/cpp/src/qpid/framing/AMQHeaderBody.h | 109 + .../qpid/cpp/src/qpid/framing/AMQHeartbeatBody.cpp | 29 + trunk/qpid/cpp/src/qpid/framing/AMQHeartbeatBody.h | 48 + trunk/qpid/cpp/src/qpid/framing/AMQMethodBody.cpp | 28 + trunk/qpid/cpp/src/qpid/framing/AMQMethodBody.h | 72 + .../cpp/src/qpid/framing/AMQP_HighestVersion.h | 40 + trunk/qpid/cpp/src/qpid/framing/AccumulatedAck.cpp | 164 + trunk/qpid/cpp/src/qpid/framing/AccumulatedAck.h | 77 + trunk/qpid/cpp/src/qpid/framing/Array.cpp | 130 + trunk/qpid/cpp/src/qpid/framing/Blob.cpp | 31 + trunk/qpid/cpp/src/qpid/framing/Blob.h | 0 trunk/qpid/cpp/src/qpid/framing/BodyFactory.h | 47 + trunk/qpid/cpp/src/qpid/framing/BodyHandler.cpp | 55 + trunk/qpid/cpp/src/qpid/framing/BodyHandler.h | 56 + trunk/qpid/cpp/src/qpid/framing/BodyHolder.cpp | 0 trunk/qpid/cpp/src/qpid/framing/BodyHolder.h | 0 trunk/qpid/cpp/src/qpid/framing/Buffer.cpp | 319 + trunk/qpid/cpp/src/qpid/framing/ChannelHandler.h | 53 + trunk/qpid/cpp/src/qpid/framing/Endian.cpp | 52 + trunk/qpid/cpp/src/qpid/framing/Endian.h | 46 + trunk/qpid/cpp/src/qpid/framing/FieldTable.cpp | 246 + trunk/qpid/cpp/src/qpid/framing/FieldValue.cpp | 215 + trunk/qpid/cpp/src/qpid/framing/FrameDecoder.cpp | 81 + trunk/qpid/cpp/src/qpid/framing/FrameDecoder.h | 52 + .../cpp/src/qpid/framing/FrameDefaultVisitor.h | 60 + trunk/qpid/cpp/src/qpid/framing/FrameHandler.h | 33 + trunk/qpid/cpp/src/qpid/framing/FrameSet.cpp | 95 + trunk/qpid/cpp/src/qpid/framing/FrameSet.h | 118 + trunk/qpid/cpp/src/qpid/framing/Handler.h | 101 + trunk/qpid/cpp/src/qpid/framing/HeaderProperties.h | 44 + .../cpp/src/qpid/framing/InitiationHandler.cpp | 24 + .../qpid/cpp/src/qpid/framing/InitiationHandler.h | 41 + trunk/qpid/cpp/src/qpid/framing/InputHandler.h | 41 + trunk/qpid/cpp/src/qpid/framing/Invoker.h | 86 + trunk/qpid/cpp/src/qpid/framing/IsInSequenceSet.h | 51 + trunk/qpid/cpp/src/qpid/framing/List.cpp | 83 + .../qpid/cpp/src/qpid/framing/MethodBodyFactory.h | 44 + trunk/qpid/cpp/src/qpid/framing/MethodContent.h | 40 + trunk/qpid/cpp/src/qpid/framing/ModelMethod.h | 49 + trunk/qpid/cpp/src/qpid/framing/OutputHandler.h | 42 + .../cpp/src/qpid/framing/ProtocolInitiation.cpp | 66 + .../qpid/cpp/src/qpid/framing/ProtocolInitiation.h | 59 + .../qpid/cpp/src/qpid/framing/ProtocolVersion.cpp | 44 + trunk/qpid/cpp/src/qpid/framing/Proxy.cpp | 51 + trunk/qpid/cpp/src/qpid/framing/Proxy.h | 64 + trunk/qpid/cpp/src/qpid/framing/SendContent.cpp | 68 + trunk/qpid/cpp/src/qpid/framing/SendContent.h | 56 + trunk/qpid/cpp/src/qpid/framing/SequenceNumber.cpp | 50 + .../cpp/src/qpid/framing/SequenceNumberSet.cpp | 90 + .../qpid/cpp/src/qpid/framing/SequenceNumberSet.h | 69 + trunk/qpid/cpp/src/qpid/framing/SequenceSet.cpp | 101 + trunk/qpid/cpp/src/qpid/framing/TemplateVisitor.h | 89 + .../qpid/cpp/src/qpid/framing/TransferContent.cpp | 102 + trunk/qpid/cpp/src/qpid/framing/TransferContent.h | 64 + trunk/qpid/cpp/src/qpid/framing/TypeFilter.h | 51 + trunk/qpid/cpp/src/qpid/framing/Uuid.cpp | 94 + trunk/qpid/cpp/src/qpid/framing/Visitor.h | 92 + trunk/qpid/cpp/src/qpid/framing/amqp_framing.h | 32 + trunk/qpid/cpp/src/qpid/framing/frame_functors.h | 116 + trunk/qpid/cpp/src/qpid/framing/variant.h | 91 + trunk/qpid/cpp/src/qpid/log/Helpers.h | 79 + trunk/qpid/cpp/src/qpid/log/Logger.cpp | 151 + trunk/qpid/cpp/src/qpid/log/Options.cpp | 107 + trunk/qpid/cpp/src/qpid/log/OstreamOutput.cpp | 41 + trunk/qpid/cpp/src/qpid/log/OstreamOutput.h | 41 + trunk/qpid/cpp/src/qpid/log/Selector.cpp | 68 + trunk/qpid/cpp/src/qpid/log/Statement.cpp | 83 + trunk/qpid/cpp/src/qpid/log/posix/SinkOptions.cpp | 215 + trunk/qpid/cpp/src/qpid/log/posix/SinkOptions.h | 64 + .../qpid/cpp/src/qpid/log/windows/SinkOptions.cpp | 148 + trunk/qpid/cpp/src/qpid/log/windows/SinkOptions.h | 54 + trunk/qpid/cpp/src/qpid/management/IdAllocator.h | 42 + trunk/qpid/cpp/src/qpid/management/Manageable.cpp | 48 + .../cpp/src/qpid/management/ManagementAgent.cpp | 1295 + .../qpid/cpp/src/qpid/management/ManagementAgent.h | 264 + .../cpp/src/qpid/management/ManagementExchange.cpp | 72 + .../cpp/src/qpid/management/ManagementExchange.h | 62 + .../cpp/src/qpid/management/ManagementObject.cpp | 183 + trunk/qpid/cpp/src/qpid/memory.h | 32 + trunk/qpid/cpp/src/qpid/messaging/Address.cpp | 362 + trunk/qpid/cpp/src/qpid/messaging/Connection.cpp | 96 + trunk/qpid/cpp/src/qpid/messaging/ConnectionImpl.h | 46 + trunk/qpid/cpp/src/qpid/messaging/ListContent.cpp | 98 + trunk/qpid/cpp/src/qpid/messaging/ListView.cpp | 63 + trunk/qpid/cpp/src/qpid/messaging/MapContent.cpp | 88 + trunk/qpid/cpp/src/qpid/messaging/MapView.cpp | 63 + trunk/qpid/cpp/src/qpid/messaging/Message.cpp | 58 + trunk/qpid/cpp/src/qpid/messaging/MessageImpl.cpp | 64 + trunk/qpid/cpp/src/qpid/messaging/MessageImpl.h | 82 + trunk/qpid/cpp/src/qpid/messaging/Receiver.cpp | 53 + trunk/qpid/cpp/src/qpid/messaging/ReceiverImpl.h | 55 + trunk/qpid/cpp/src/qpid/messaging/Sender.cpp | 50 + trunk/qpid/cpp/src/qpid/messaging/SenderImpl.h | 50 + trunk/qpid/cpp/src/qpid/messaging/Session.cpp | 109 + trunk/qpid/cpp/src/qpid/messaging/SessionImpl.h | 64 + trunk/qpid/cpp/src/qpid/messaging/Variant.cpp | 659 + trunk/qpid/cpp/src/qpid/pointer_to_other.h | 62 + trunk/qpid/cpp/src/qpid/ptr_map.h | 57 + .../qpid/replication/ReplicatingEventListener.cpp | 201 + .../qpid/replication/ReplicatingEventListener.h | 78 + .../src/qpid/replication/ReplicationExchange.cpp | 232 + .../cpp/src/qpid/replication/ReplicationExchange.h | 67 + trunk/qpid/cpp/src/qpid/replication/constants.h | 34 + trunk/qpid/cpp/src/qpid/store/CMakeLists.txt | 80 + .../qpid/cpp/src/qpid/store/MessageStorePlugin.cpp | 447 + trunk/qpid/cpp/src/qpid/store/MessageStorePlugin.h | 284 + trunk/qpid/cpp/src/qpid/store/StorageProvider.h | 324 + trunk/qpid/cpp/src/qpid/store/StoreException.h | 49 + .../cpp/src/qpid/store/ms-sql/AmqpTransaction.cpp | 89 + .../cpp/src/qpid/store/ms-sql/AmqpTransaction.h | 84 + .../cpp/src/qpid/store/ms-sql/BindingRecordset.cpp | 165 + .../cpp/src/qpid/store/ms-sql/BindingRecordset.h | 88 + .../qpid/cpp/src/qpid/store/ms-sql/BlobAdapter.cpp | 64 + trunk/qpid/cpp/src/qpid/store/ms-sql/BlobAdapter.h | 62 + .../qpid/cpp/src/qpid/store/ms-sql/BlobEncoder.cpp | 133 + trunk/qpid/cpp/src/qpid/store/ms-sql/BlobEncoder.h | 61 + .../cpp/src/qpid/store/ms-sql/BlobRecordset.cpp | 86 + .../qpid/cpp/src/qpid/store/ms-sql/BlobRecordset.h | 54 + .../src/qpid/store/ms-sql/DatabaseConnection.cpp | 70 + .../cpp/src/qpid/store/ms-sql/DatabaseConnection.h | 62 + trunk/qpid/cpp/src/qpid/store/ms-sql/Exception.h | 62 + .../cpp/src/qpid/store/ms-sql/MSSqlProvider.cpp | 1061 + .../src/qpid/store/ms-sql/MessageMapRecordset.cpp | 155 + .../src/qpid/store/ms-sql/MessageMapRecordset.h | 77 + .../cpp/src/qpid/store/ms-sql/MessageRecordset.cpp | 184 + .../cpp/src/qpid/store/ms-sql/MessageRecordset.h | 85 + trunk/qpid/cpp/src/qpid/store/ms-sql/Recordset.cpp | 121 + trunk/qpid/cpp/src/qpid/store/ms-sql/Recordset.h | 101 + trunk/qpid/cpp/src/qpid/store/ms-sql/State.cpp | 45 + trunk/qpid/cpp/src/qpid/store/ms-sql/State.h | 52 + .../cpp/src/qpid/store/ms-sql/VariantHelper.cpp | 59 + .../qpid/cpp/src/qpid/store/ms-sql/VariantHelper.h | 61 + trunk/qpid/cpp/src/qpid/sys/AggregateOutput.cpp | 91 + trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h | 78 + trunk/qpid/cpp/src/qpid/sys/AsynchIO.h | 150 + trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp | 228 + trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.h | 80 + trunk/qpid/cpp/src/qpid/sys/AtomicCount.h | 52 + trunk/qpid/cpp/src/qpid/sys/AtomicValue.h | 34 + trunk/qpid/cpp/src/qpid/sys/AtomicValue_gcc.h | 68 + trunk/qpid/cpp/src/qpid/sys/AtomicValue_mutex.h | 83 + trunk/qpid/cpp/src/qpid/sys/BlockingQueue.h | 125 + trunk/qpid/cpp/src/qpid/sys/Codec.h | 52 + trunk/qpid/cpp/src/qpid/sys/ConnectionCodec.h | 79 + .../qpid/cpp/src/qpid/sys/ConnectionInputHandler.h | 44 + .../src/qpid/sys/ConnectionInputHandlerFactory.h | 54 + .../cpp/src/qpid/sys/ConnectionOutputHandler.h | 43 + .../cpp/src/qpid/sys/ConnectionOutputHandlerPtr.h | 56 + trunk/qpid/cpp/src/qpid/sys/CopyOnWriteArray.h | 138 + trunk/qpid/cpp/src/qpid/sys/DeletionManager.h | 162 + trunk/qpid/cpp/src/qpid/sys/DispatchHandle.cpp | 337 + trunk/qpid/cpp/src/qpid/sys/DispatchHandle.h | 150 + trunk/qpid/cpp/src/qpid/sys/Dispatcher.cpp | 40 + trunk/qpid/cpp/src/qpid/sys/Dispatcher.h | 44 + trunk/qpid/cpp/src/qpid/sys/FileSysDir.h | 62 + trunk/qpid/cpp/src/qpid/sys/Fork.h | 24 + trunk/qpid/cpp/src/qpid/sys/LockFile.h | 64 + trunk/qpid/cpp/src/qpid/sys/LockPtr.h | 89 + trunk/qpid/cpp/src/qpid/sys/OutputControl.h | 43 + trunk/qpid/cpp/src/qpid/sys/OutputTask.h | 48 + trunk/qpid/cpp/src/qpid/sys/PipeHandle.h | 51 + trunk/qpid/cpp/src/qpid/sys/PollableCondition.h | 64 + trunk/qpid/cpp/src/qpid/sys/PollableQueue.h | 176 + trunk/qpid/cpp/src/qpid/sys/Poller.h | 127 + trunk/qpid/cpp/src/qpid/sys/ProtocolFactory.h | 58 + trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 353 + trunk/qpid/cpp/src/qpid/sys/Runnable.cpp | 32 + trunk/qpid/cpp/src/qpid/sys/ScopedIncrement.h | 67 + trunk/qpid/cpp/src/qpid/sys/SecurityLayer.h | 42 + trunk/qpid/cpp/src/qpid/sys/Semaphore.h | 79 + trunk/qpid/cpp/src/qpid/sys/Shlib.cpp | 38 + trunk/qpid/cpp/src/qpid/sys/Shlib.h | 76 + trunk/qpid/cpp/src/qpid/sys/ShutdownHandler.h | 37 + trunk/qpid/cpp/src/qpid/sys/Socket.h | 113 + trunk/qpid/cpp/src/qpid/sys/SocketAddress.h | 53 + trunk/qpid/cpp/src/qpid/sys/SslPlugin.cpp | 184 + trunk/qpid/cpp/src/qpid/sys/StateMonitor.h | 78 + trunk/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp | 154 + trunk/qpid/cpp/src/qpid/sys/TimeoutHandler.h | 39 + trunk/qpid/cpp/src/qpid/sys/Timer.cpp | 179 + trunk/qpid/cpp/src/qpid/sys/Timer.h | 94 + trunk/qpid/cpp/src/qpid/sys/Waitable.h | 114 + trunk/qpid/cpp/src/qpid/sys/alloca.h | 39 + trunk/qpid/cpp/src/qpid/sys/apr/APRBase.cpp | 89 + trunk/qpid/cpp/src/qpid/sys/apr/APRBase.h | 74 + trunk/qpid/cpp/src/qpid/sys/apr/APRPool.cpp | 41 + trunk/qpid/cpp/src/qpid/sys/apr/APRPool.h | 50 + trunk/qpid/cpp/src/qpid/sys/apr/Condition.h | 84 + trunk/qpid/cpp/src/qpid/sys/apr/Mutex.h | 124 + trunk/qpid/cpp/src/qpid/sys/apr/Shlib.cpp | 49 + trunk/qpid/cpp/src/qpid/sys/apr/Socket.cpp | 114 + trunk/qpid/cpp/src/qpid/sys/apr/Thread.cpp | 34 + trunk/qpid/cpp/src/qpid/sys/apr/Thread.h | 106 + trunk/qpid/cpp/src/qpid/sys/apr/Time.cpp | 36 + .../cpp/src/qpid/sys/cyrus/CyrusSecurityLayer.cpp | 127 + .../cpp/src/qpid/sys/cyrus/CyrusSecurityLayer.h | 68 + trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp | 634 + trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp | 620 + trunk/qpid/cpp/src/qpid/sys/posix/FileSysDir.cpp | 54 + trunk/qpid/cpp/src/qpid/sys/posix/Fork.cpp | 129 + trunk/qpid/cpp/src/qpid/sys/posix/Fork.h | 82 + trunk/qpid/cpp/src/qpid/sys/posix/IOHandle.cpp | 44 + trunk/qpid/cpp/src/qpid/sys/posix/LockFile.cpp | 108 + trunk/qpid/cpp/src/qpid/sys/posix/Mutex.cpp | 46 + trunk/qpid/cpp/src/qpid/sys/posix/PidFile.h | 62 + trunk/qpid/cpp/src/qpid/sys/posix/PipeHandle.cpp | 64 + .../cpp/src/qpid/sys/posix/PollableCondition.cpp | 124 + trunk/qpid/cpp/src/qpid/sys/posix/Shlib.cpp | 59 + trunk/qpid/cpp/src/qpid/sys/posix/Socket.cpp | 277 + .../qpid/cpp/src/qpid/sys/posix/SocketAddress.cpp | 97 + trunk/qpid/cpp/src/qpid/sys/posix/StrError.cpp | 41 + trunk/qpid/cpp/src/qpid/sys/posix/SystemInfo.cpp | 137 + trunk/qpid/cpp/src/qpid/sys/posix/Thread.cpp | 75 + trunk/qpid/cpp/src/qpid/sys/posix/Time.cpp | 113 + trunk/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp | 207 + trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 623 + trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 223 + trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp | 170 + trunk/qpid/cpp/src/qpid/sys/rdma/rdma_exception.h | 65 + .../qpid/cpp/src/qpid/sys/rdma/rdma_factories.cpp | 64 + trunk/qpid/cpp/src/qpid/sys/rdma/rdma_factories.h | 69 + trunk/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 185 + trunk/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h | 497 + trunk/qpid/cpp/src/qpid/sys/solaris/ECFPoller.cpp | 439 + trunk/qpid/cpp/src/qpid/sys/solaris/SystemInfo.cpp | 123 + trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.cpp | 187 + trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.h | 76 + trunk/qpid/cpp/src/qpid/sys/ssl/SslIo.cpp | 439 + trunk/qpid/cpp/src/qpid/sys/ssl/SslIo.h | 171 + trunk/qpid/cpp/src/qpid/sys/ssl/SslSocket.cpp | 297 + trunk/qpid/cpp/src/qpid/sys/ssl/SslSocket.h | 119 + trunk/qpid/cpp/src/qpid/sys/ssl/check.cpp | 72 + trunk/qpid/cpp/src/qpid/sys/ssl/check.h | 53 + trunk/qpid/cpp/src/qpid/sys/ssl/util.cpp | 118 + trunk/qpid/cpp/src/qpid/sys/ssl/util.h | 50 + trunk/qpid/cpp/src/qpid/sys/uuid.h | 28 + trunk/qpid/cpp/src/qpid/sys/windows/AsynchIO.cpp | 751 + .../qpid/cpp/src/qpid/sys/windows/AsynchIoResult.h | 204 + trunk/qpid/cpp/src/qpid/sys/windows/FileSysDir.cpp | 53 + trunk/qpid/cpp/src/qpid/sys/windows/IOHandle.cpp | 42 + .../cpp/src/qpid/sys/windows/IoHandlePrivate.h | 61 + trunk/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp | 214 + trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp | 64 + trunk/qpid/cpp/src/qpid/sys/windows/PipeHandle.cpp | 101 + .../cpp/src/qpid/sys/windows/PollableCondition.cpp | 116 + trunk/qpid/cpp/src/qpid/sys/windows/Shlib.cpp | 53 + trunk/qpid/cpp/src/qpid/sys/windows/Socket.cpp | 343 + .../cpp/src/qpid/sys/windows/SocketAddress.cpp | 70 + trunk/qpid/cpp/src/qpid/sys/windows/StrError.cpp | 47 + trunk/qpid/cpp/src/qpid/sys/windows/SystemInfo.cpp | 201 + trunk/qpid/cpp/src/qpid/sys/windows/Thread.cpp | 88 + trunk/qpid/cpp/src/qpid/sys/windows/Time.cpp | 103 + trunk/qpid/cpp/src/qpid/sys/windows/uuid.cpp | 59 + trunk/qpid/cpp/src/qpid/sys/windows/uuid.h | 38 + trunk/qpid/cpp/src/qpid/xml/XmlBinding.h | 37 + trunk/qpid/cpp/src/qpid/xml/XmlExchange.cpp | 262 + trunk/qpid/cpp/src/qpid/xml/XmlExchange.h | 90 + trunk/qpid/cpp/src/qpid/xml/XmlExchangePlugin.cpp | 69 + trunk/qpid/cpp/src/qpidd.cpp | 86 + trunk/qpid/cpp/src/qpidd.h | 70 + trunk/qpid/cpp/src/rdma.cmake | 118 + trunk/qpid/cpp/src/replication.mk | 52 + trunk/qpid/cpp/src/ssl.cmake | 106 + trunk/qpid/cpp/src/ssl.mk | 64 + trunk/qpid/cpp/src/tests/.valgrind.supp | 276 + trunk/qpid/cpp/src/tests/AccumulatedAckTest.cpp | 237 + trunk/qpid/cpp/src/tests/Address.cpp | 98 + trunk/qpid/cpp/src/tests/Array.cpp | 84 + trunk/qpid/cpp/src/tests/AsyncCompletion.cpp | 120 + trunk/qpid/cpp/src/tests/AtomicValue.cpp | 54 + trunk/qpid/cpp/src/tests/Blob.cpp | 0 trunk/qpid/cpp/src/tests/BrokerFixture.h | 154 + trunk/qpid/cpp/src/tests/CMakeLists.txt | 345 + trunk/qpid/cpp/src/tests/ClientMessage.cpp | 46 + trunk/qpid/cpp/src/tests/ClientMessageTest.cpp | 51 + trunk/qpid/cpp/src/tests/ClientSessionTest.cpp | 612 + trunk/qpid/cpp/src/tests/ClusterFailover.cpp | 68 + trunk/qpid/cpp/src/tests/ClusterFixture.cpp | 160 + trunk/qpid/cpp/src/tests/ClusterFixture.h | 115 + trunk/qpid/cpp/src/tests/ConnectionOptions.h | 62 + trunk/qpid/cpp/src/tests/ConsoleTest.cpp | 46 + trunk/qpid/cpp/src/tests/DeliveryRecordTest.cpp | 66 + trunk/qpid/cpp/src/tests/DispatcherTest.cpp | 249 + trunk/qpid/cpp/src/tests/DtxWorkRecordTest.cpp | 193 + trunk/qpid/cpp/src/tests/ExchangeTest.cpp | 289 + trunk/qpid/cpp/src/tests/FieldTable.cpp | 213 + trunk/qpid/cpp/src/tests/FieldValue.cpp | 95 + trunk/qpid/cpp/src/tests/ForkedBroker.cpp | 131 + trunk/qpid/cpp/src/tests/ForkedBroker.h | 78 + trunk/qpid/cpp/src/tests/Frame.cpp | 85 + trunk/qpid/cpp/src/tests/FrameDecoder.cpp | 78 + trunk/qpid/cpp/src/tests/FramingTest.cpp | 156 + trunk/qpid/cpp/src/tests/HeaderTest.cpp | 114 + trunk/qpid/cpp/src/tests/HeadersExchangeTest.cpp | 120 + trunk/qpid/cpp/src/tests/IncompleteMessageList.cpp | 134 + trunk/qpid/cpp/src/tests/InitialStatusMap.cpp | 248 + trunk/qpid/cpp/src/tests/InlineAllocator.cpp | 68 + trunk/qpid/cpp/src/tests/InlineVector.cpp | 128 + trunk/qpid/cpp/src/tests/Makefile.am | 357 + trunk/qpid/cpp/src/tests/ManagementTest.cpp | 115 + trunk/qpid/cpp/src/tests/MessageBuilderTest.cpp | 251 + trunk/qpid/cpp/src/tests/MessageReplayTracker.cpp | 102 + trunk/qpid/cpp/src/tests/MessageTest.cpp | 92 + trunk/qpid/cpp/src/tests/MessageUtils.h | 63 + trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp | 778 + trunk/qpid/cpp/src/tests/PartialFailure.cpp | 291 + trunk/qpid/cpp/src/tests/PollableCondition.cpp | 109 + trunk/qpid/cpp/src/tests/PollerTest.cpp | 227 + trunk/qpid/cpp/src/tests/ProxyTest.cpp | 56 + trunk/qpid/cpp/src/tests/QueueEvents.cpp | 238 + trunk/qpid/cpp/src/tests/QueueOptionsTest.cpp | 102 + trunk/qpid/cpp/src/tests/QueuePolicyTest.cpp | 304 + trunk/qpid/cpp/src/tests/QueueRegistryTest.cpp | 99 + trunk/qpid/cpp/src/tests/QueueTest.cpp | 1102 + trunk/qpid/cpp/src/tests/README | 54 + trunk/qpid/cpp/src/tests/RangeSet.cpp | 146 + trunk/qpid/cpp/src/tests/RateFlowcontrolTest.cpp | 71 + trunk/qpid/cpp/src/tests/RefCounted.cpp | 55 + trunk/qpid/cpp/src/tests/ReplicationTest.cpp | 141 + trunk/qpid/cpp/src/tests/RetryList.cpp | 111 + trunk/qpid/cpp/src/tests/SequenceNumberTest.cpp | 209 + trunk/qpid/cpp/src/tests/SequenceSet.cpp | 143 + trunk/qpid/cpp/src/tests/SessionState.cpp | 304 + trunk/qpid/cpp/src/tests/Shlib.cpp | 76 + trunk/qpid/cpp/src/tests/SocketProxy.h | 181 + trunk/qpid/cpp/src/tests/StoreStatus.cpp | 109 + trunk/qpid/cpp/src/tests/StringUtils.cpp | 77 + trunk/qpid/cpp/src/tests/TestMessageStore.h | 63 + trunk/qpid/cpp/src/tests/TestOptions.h | 79 + trunk/qpid/cpp/src/tests/TimerTest.cpp | 128 + trunk/qpid/cpp/src/tests/TopicExchangeTest.cpp | 127 + trunk/qpid/cpp/src/tests/TxBufferTest.cpp | 181 + trunk/qpid/cpp/src/tests/TxMocks.h | 234 + trunk/qpid/cpp/src/tests/TxPublishTest.cpp | 99 + trunk/qpid/cpp/src/tests/Url.cpp | 72 + trunk/qpid/cpp/src/tests/Uuid.cpp | 84 + trunk/qpid/cpp/src/tests/Variant.cpp | 178 + trunk/qpid/cpp/src/tests/XmlClientSessionTest.cpp | 226 + trunk/qpid/cpp/src/tests/acl.py | 884 + trunk/qpid/cpp/src/tests/ais_check | 34 + trunk/qpid/cpp/src/tests/ais_test.cpp | 23 + trunk/qpid/cpp/src/tests/amqp_0_10/Map.cpp | 98 + .../qpid/cpp/src/tests/amqp_0_10/ProxyTemplate.cpp | 49 + trunk/qpid/cpp/src/tests/amqp_0_10/apply.cpp | 99 + trunk/qpid/cpp/src/tests/amqp_0_10/handlers.cpp | 125 + trunk/qpid/cpp/src/tests/amqp_0_10/serialize.cpp | 429 + trunk/qpid/cpp/src/tests/background.ps1 | 55 + trunk/qpid/cpp/src/tests/benchmark | 95 + trunk/qpid/cpp/src/tests/cli_tests.py | 190 + trunk/qpid/cpp/src/tests/client_test.cpp | 139 + trunk/qpid/cpp/src/tests/cluster.cmake | 86 + trunk/qpid/cpp/src/tests/cluster.mk | 86 + trunk/qpid/cpp/src/tests/cluster_python_tests | 5 + .../cpp/src/tests/cluster_python_tests_failing.txt | 31 + trunk/qpid/cpp/src/tests/cluster_read_credit | 27 + trunk/qpid/cpp/src/tests/cluster_test.cpp | 1191 + .../cpp/src/tests/cluster_test_scripts/README.txt | 20 + .../src/tests/cluster_test_scripts/cluster_check | 17 + .../src/tests/cluster_test_scripts/cluster_start | 36 + .../src/tests/cluster_test_scripts/cluster_stop | 18 + .../tests/cluster_test_scripts/config_example.sh | 25 + .../cpp/src/tests/cluster_test_scripts/perftest | 34 + trunk/qpid/cpp/src/tests/cluster_tests.fail | 2 + trunk/qpid/cpp/src/tests/cluster_tests.py | 233 + .../qpid/cpp/src/tests/clustered_replication_test | 110 + trunk/qpid/cpp/src/tests/config.null | 1 + trunk/qpid/cpp/src/tests/consume.cpp | 131 + trunk/qpid/cpp/src/tests/datagen.cpp | 103 + trunk/qpid/cpp/src/tests/declare_queues.cpp | 101 + trunk/qpid/cpp/src/tests/dlclose_noop.c | 30 + trunk/qpid/cpp/src/tests/echotest.cpp | 157 + trunk/qpid/cpp/src/tests/exception_test.cpp | 127 + trunk/qpid/cpp/src/tests/failover_soak.cpp | 826 + trunk/qpid/cpp/src/tests/fanout_perftest | 22 + trunk/qpid/cpp/src/tests/federated_cluster_test | 152 + .../tests/federated_cluster_test_with_node_failure | 23 + trunk/qpid/cpp/src/tests/federated_topic_test | 129 + trunk/qpid/cpp/src/tests/federation.py | 597 + trunk/qpid/cpp/src/tests/find_prog.ps1 | 36 + trunk/qpid/cpp/src/tests/header_test.cpp | 59 + trunk/qpid/cpp/src/tests/header_test.py | 86 + trunk/qpid/cpp/src/tests/latencytest.cpp | 469 + trunk/qpid/cpp/src/tests/logging.cpp | 385 + trunk/qpid/cpp/src/tests/long_cluster_tests.py | 38 + trunk/qpid/cpp/src/tests/multiq_perftest | 22 + trunk/qpid/cpp/src/tests/perfdist | 87 + trunk/qpid/cpp/src/tests/perftest.cpp | 741 + trunk/qpid/cpp/src/tests/policy.acl | 1 + trunk/qpid/cpp/src/tests/publish.cpp | 135 + trunk/qpid/cpp/src/tests/python_tests | 29 + trunk/qpid/cpp/src/tests/python_tests.ps1 | 42 + trunk/qpid/cpp/src/tests/qpid_ping.cpp | 123 + trunk/qpid/cpp/src/tests/qpid_stream.cpp | 170 + trunk/qpid/cpp/src/tests/qrsh.cpp | 169 + trunk/qpid/cpp/src/tests/qrsh_run.cpp | 321 + trunk/qpid/cpp/src/tests/qrsh_server.cpp | 1065 + trunk/qpid/cpp/src/tests/qrsh_utils/10_all | 30 + trunk/qpid/cpp/src/tests/qrsh_utils/1_remote_run | 26 + trunk/qpid/cpp/src/tests/qrsh_utils/2_forever | 26 + trunk/qpid/cpp/src/tests/qrsh_utils/3_kill_it | 27 + trunk/qpid/cpp/src/tests/qrsh_utils/4_wait_for_it | 26 + trunk/qpid/cpp/src/tests/qrsh_utils/5_exited | 64 + trunk/qpid/cpp/src/tests/qrsh_utils/6_get | 29 + trunk/qpid/cpp/src/tests/qrsh_utils/7_get_output | 44 + trunk/qpid/cpp/src/tests/qrsh_utils/8_any | 43 + trunk/qpid/cpp/src/tests/qrsh_utils/9_alias | 38 + .../src/tests/qrsh_utils/qrsh_example_command.cpp | 52 + .../qpid/cpp/src/tests/qrsh_utils/qrsh_forever.cpp | 50 + trunk/qpid/cpp/src/tests/qrsh_utils/qsh_doc.txt | 309 + trunk/qpid/cpp/src/tests/quick_perftest | 22 + trunk/qpid/cpp/src/tests/quick_topictest | 30 + trunk/qpid/cpp/src/tests/quick_topictest.ps1 | 30 + trunk/qpid/cpp/src/tests/quick_txtest | 22 + trunk/qpid/cpp/src/tests/receiver.cpp | 139 + trunk/qpid/cpp/src/tests/reliable_replication_test | 93 + trunk/qpid/cpp/src/tests/replaying_sender.cpp | 163 + trunk/qpid/cpp/src/tests/replication_test | 182 + trunk/qpid/cpp/src/tests/restart_cluster | 38 + trunk/qpid/cpp/src/tests/resuming_receiver.cpp | 192 + trunk/qpid/cpp/src/tests/ring_queue_test | 174 + trunk/qpid/cpp/src/tests/run-unit-tests | 48 + trunk/qpid/cpp/src/tests/run_acl_tests | 64 + trunk/qpid/cpp/src/tests/run_cli_tests | 51 + trunk/qpid/cpp/src/tests/run_cluster_test | 26 + trunk/qpid/cpp/src/tests/run_cluster_tests | 38 + trunk/qpid/cpp/src/tests/run_failover_soak | 38 + trunk/qpid/cpp/src/tests/run_federation_tests | 49 + trunk/qpid/cpp/src/tests/run_federation_tests.ps1 | 80 + trunk/qpid/cpp/src/tests/run_header_test | 37 + trunk/qpid/cpp/src/tests/run_header_test.ps1 | 47 + trunk/qpid/cpp/src/tests/run_long_cluster_tests | 23 + trunk/qpid/cpp/src/tests/run_perftest | 28 + trunk/qpid/cpp/src/tests/run_ring_queue_test | 36 + trunk/qpid/cpp/src/tests/run_test | 82 + trunk/qpid/cpp/src/tests/run_test.ps1 | 73 + trunk/qpid/cpp/src/tests/sender.cpp | 137 + trunk/qpid/cpp/src/tests/shared_perftest | 22 + trunk/qpid/cpp/src/tests/shlibtest.cpp | 34 + trunk/qpid/cpp/src/tests/ssl.mk | 23 + trunk/qpid/cpp/src/tests/ssl_test | 82 + trunk/qpid/cpp/src/tests/start_broker | 24 + trunk/qpid/cpp/src/tests/start_broker.ps1 | 60 + trunk/qpid/cpp/src/tests/start_cluster | 42 + trunk/qpid/cpp/src/tests/start_cluster_hosts | 70 + trunk/qpid/cpp/src/tests/stop_broker | 41 + trunk/qpid/cpp/src/tests/stop_broker.ps1 | 56 + trunk/qpid/cpp/src/tests/stop_cluster | 33 + trunk/qpid/cpp/src/tests/test_env.sh.in | 68 + trunk/qpid/cpp/src/tests/test_store.cpp | 178 + trunk/qpid/cpp/src/tests/test_tools.h | 122 + trunk/qpid/cpp/src/tests/test_watchdog | 36 + trunk/qpid/cpp/src/tests/test_wrap | 48 + trunk/qpid/cpp/src/tests/testlib.py | 766 + trunk/qpid/cpp/src/tests/topic_listener.cpp | 209 + trunk/qpid/cpp/src/tests/topic_perftest | 22 + trunk/qpid/cpp/src/tests/topic_publisher.cpp | 230 + trunk/qpid/cpp/src/tests/topictest | 61 + trunk/qpid/cpp/src/tests/topictest.ps1 | 70 + trunk/qpid/cpp/src/tests/txjob.cpp | 102 + trunk/qpid/cpp/src/tests/txshift.cpp | 193 + trunk/qpid/cpp/src/tests/txtest.cpp | 340 + trunk/qpid/cpp/src/tests/unit_test.cpp | 23 + trunk/qpid/cpp/src/tests/unit_test.h | 70 + trunk/qpid/cpp/src/tests/vg_check | 24 + .../src/tests/windows/DisableWin32ErrorWindows.cpp | 72 + trunk/qpid/cpp/src/windows/QpiddBroker.cpp | 310 + trunk/qpid/cpp/src/xml.mk | 28 + trunk/qpid/cpp/versions | 12 + trunk/qpid/cpp/xml/cluster.xml | 228 + trunk/qpid/cpp/xml/extra.xml | 926 + trunk/qpid/dotnet/LICENSE.txt | 757 + trunk/qpid/dotnet/NOTICE.txt | 32 + .../Qpid.Buffer.Tests/Properties/AssemblyInfo.cs | 56 + .../Qpid.Buffer.Tests/Qpid.Buffer.Tests.csproj | 83 + .../Qpid.Buffer.Tests/SimpleByteBufferTests.cs | 333 + .../Qpid.Buffer.Tests/SlicedByteBufferTests.cs | 133 + trunk/qpid/dotnet/Qpid.Buffer.Tests/default.build | 48 + .../dotnet/Qpid.Buffer/BufferOverflowException.cs | 41 + .../dotnet/Qpid.Buffer/BufferUnderflowException.cs | 42 + trunk/qpid/dotnet/Qpid.Buffer/ByteBuffer.cs | 982 + .../qpid/dotnet/Qpid.Buffer/ByteBufferHexDumper.cs | 79 + .../dotnet/Qpid.Buffer/IByteBufferAllocator.cs | 50 + .../dotnet/Qpid.Buffer/Properties/AssemblyInfo.cs | 53 + trunk/qpid/dotnet/Qpid.Buffer/Qpid.Buffer.csproj | 77 + trunk/qpid/dotnet/Qpid.Buffer/SimpleByteBuffer.cs | 120 + .../Qpid.Buffer/SimpleByteBufferAllocator.cs | 58 + trunk/qpid/dotnet/Qpid.Buffer/SlicedByteBuffer.cs | 86 + trunk/qpid/dotnet/Qpid.Buffer/default.build | 46 + trunk/qpid/dotnet/Qpid.Client.Tests/App.config | 34 + .../BrokerDetails/BrokerDetailsTest.cs | 65 + .../Channel/ChannelMessageCreationTests.cs | 79 + .../Messages/MessageFactoryRegistryTests.cs | 114 + .../Qpid.Client.Tests/Properties/AssemblyInfo.cs | 53 + .../Qpid.Client.Tests/Qpid.Client.Tests.csproj | 158 + .../Security/CallbackHandlerRegistryTests.cs | 66 + trunk/qpid/dotnet/Qpid.Client.Tests/default.build | 64 + .../Qpid.Client.Tests/interop/TopicListener.cs | 211 + .../Qpid.Client.Tests/interop/TopicPublisher.cs | 208 + .../Qpid.Client.Tests/lib/nunit/nunit-licence.txt | 23 + .../lib/nunit/nunit.framework.dll | Bin 0 -> 45056 bytes trunk/qpid/dotnet/Qpid.Client.Tests/log4net.config | 68 + .../Qpid.Client.Tests/url/ConnectionUrlTest.cs | 446 + .../BlockingSocketProcessor.cs | 135 + .../BlockingSocketTransport.cs | 121 + .../ByteChannel.cs | 63 + .../Properties/AssemblyInfo.cs | 53 + .../Qpid.Client.Transport.Socket.Blocking.csproj | 92 + .../Qpid.Client.Transport.Socket.Blocking.mdp | 30 + .../Client/AMQAuthenticationException.cs | 39 + .../dotnet/Qpid.Client/Client/AMQConnection.cs | 873 + .../Qpid.Client/Client/AMQConnectionException.cs | 38 + .../dotnet/Qpid.Client/Client/AMQDestination.cs | 234 + .../Qpid.Client/Client/AMQNoConsumersException.cs | 45 + .../Qpid.Client/Client/AMQNoRouteException.cs | 46 + .../dotnet/Qpid.Client/Client/AmqBrokerInfo.cs | 322 + trunk/qpid/dotnet/Qpid.Client/Client/AmqChannel.cs | 1198 + .../Qpid.Client/Client/BasicMessageConsumer.cs | 477 + .../Qpid.Client/Client/BasicMessageProducer.cs | 405 + trunk/qpid/dotnet/Qpid.Client/Client/Closeable.cs | 83 + .../AuthenticationConfigurationSectionHandler.cs | 84 + .../Qpid.Client/Client/ConnectionTuneParameters.cs | 83 + .../Client/Failover/FailoverException.cs | 42 + .../Qpid.Client/Client/Failover/FailoverHandler.cs | 175 + .../Qpid.Client/Client/Failover/FailoverState.cs | 31 + .../Qpid.Client/Client/Failover/FailoverSupport.cs | 55 + .../Client/Handler/BasicDeliverMethodHandler.cs | 42 + .../Client/Handler/BasicReturnMethodHandler.cs | 44 + .../Client/Handler/ChannelCloseMethodHandler.cs | 68 + .../Client/Handler/ConnectionCloseMethodHandler.cs | 68 + .../Client/Handler/ConnectionCloseOkHandler.cs | 41 + .../Handler/ConnectionOpenOkMethodHandler.cs | 35 + .../Handler/ConnectionRedirectMethodHandler.cs | 68 + .../Handler/ConnectionSecureMethodHandler.cs | 60 + .../Client/Handler/ConnectionStartMethodHandler.cs | 144 + .../Client/Handler/ConnectionTuneMethodHandler.cs | 63 + .../Client/Handler/QueueDeleteOkMethodHandler.cs | 44 + .../Client/Handler/QueuePurgeOkMethodHandler.cs | 44 + .../Qpid.Client/Client/Message/AMQMessage.cs | 58 + .../Client/Message/AMQMessageFactory.cs | 73 + .../Client/Message/AbstractQmsMessage.cs | 694 + .../Qpid.Client/Client/Message/IMessageFactory.cs | 52 + .../Client/Message/MessageFactoryRegistry.cs | 129 + .../Qpid.Client/Client/Message/QpidBytesMessage.cs | 353 + .../Client/Message/QpidBytesMessageFactory.cs | 75 + .../Qpid.Client/Client/Message/QpidHeaders.cs | 233 + .../Qpid.Client/Client/Message/QpidTextMessage.cs | 115 + .../Client/Message/QpidTextMessageFactory.cs | 40 + .../Message/UnexpectedBodyReceivedException.cs | 57 + .../Client/Message/UnprocessedMessage.cs | 57 + .../Qpid.Client/Client/Protocol/AMQMethodEvent.cs | 76 + .../Client/Protocol/AMQProtocolListener.cs | 318 + .../Client/Protocol/AMQProtocolSession.cs | 267 + .../Qpid.Client/Client/Protocol/DefaultTimeouts.cs | 47 + .../Client/Protocol/IConnectionCloser.cs | 27 + .../Client/Protocol/IProtocolListener.cs | 36 + .../Listener/BlockingMethodFrameListener.cs | 110 + .../Client/Protocol/Listener/IAMQMethodListener.cs | 46 + .../Listener/SpecificMethodFrameListener.cs | 42 + .../Qpid.Client/Client/Protocol/ProtocolWriter.cs | 107 + .../Qpid.Client/Client/QpidConnectionInfo.cs | 504 + .../Client/Security/CallbackHandlerRegistry.cs | 129 + .../Client/Security/IAMQCallbackHandler.cs | 35 + .../Security/UsernamePasswordCallbackHandler.cs | 56 + trunk/qpid/dotnet/Qpid.Client/Client/SslOptions.cs | 81 + .../dotnet/Qpid.Client/Client/State/AMQState.cs | 35 + .../Client/State/AMQStateChangedEvent.cs | 52 + .../Qpid.Client/Client/State/AMQStateManager.cs | 251 + .../Qpid.Client/Client/State/IAMQStateListener.cs | 29 + .../Client/State/IStateAwareMethodListener.cs | 31 + .../Qpid.Client/Client/State/IStateListener.cs | 33 + .../State/IllegalStateTransitionException.cs | 74 + .../dotnet/Qpid.Client/Client/State/StateWaiter.cs | 121 + .../Client/Transport/AMQProtocolProvider.cs | 47 + .../Qpid.Client/Client/Transport/AmqpChannel.cs | 111 + .../Qpid.Client/Client/Transport/IByteChannel.cs | 71 + .../Client/Transport/IProtocolChannel.cs | 32 + .../Client/Transport/IProtocolWriter.cs | 29 + .../Qpid.Client/Client/Transport/IStreamFilter.cs | 38 + .../Qpid.Client/Client/Transport/ITransport.cs | 32 + .../Qpid.Client/Client/Transport/IoHandler.cs | 322 + .../Client/Transport/ProtocolDecoderOutput.cs | 60 + .../Transport/SingleProtocolEncoderOutput.cs | 40 + .../Socket/Blocking/BlockingSocketTransport.cs | 150 + .../Transport/Socket/Blocking/ByteChannel.cs | 92 + .../Transport/Socket/Blocking/ISocketConnector.cs | 34 + .../Transport/Socket/Blocking/SocketConnector.cs | 71 + .../Socket/Blocking/SslSocketConnector.cs | 107 + .../Qpid.Client/Client/Util/FlowControlQueue.cs | 98 + .../dotnet/Qpid.Client/Properties/AssemblyInfo.cs | 52 + trunk/qpid/dotnet/Qpid.Client/Qpid.Client.csproj | 102 + trunk/qpid/dotnet/Qpid.Client/default.build | 52 + trunk/qpid/dotnet/Qpid.Client/qms/BrokerInfo.cs | 55 + .../qpid/dotnet/Qpid.Client/qms/ConnectionInfo.cs | 63 + .../qpid/dotnet/Qpid.Client/qms/FailoverPolicy.cs | 315 + .../dotnet/Qpid.Client/qms/UrlSyntaxException.cs | 134 + .../Qpid.Client/qms/failover/FailoverMethod.cs | 78 + .../Qpid.Client/qms/failover/FailoverRoundRobin.cs | 255 + .../qms/failover/FailoverSingleServer.cs | 147 + .../dotnet/Qpid.Codec/CumulativeProtocolDecoder.cs | 152 + .../Demux/DemuxingProtocolCodecFactory.cs | 387 + .../dotnet/Qpid.Codec/Demux/IMessageDecoder.cs | 56 + .../Qpid.Codec/Demux/IMessageDecoderFactory.cs | 32 + .../dotnet/Qpid.Codec/Demux/IMessageEncoder.cs | 48 + .../Qpid.Codec/Demux/IMessageEncoderFactory.cs | 32 + .../Qpid.Codec/Demux/MessageDecoderResult.cs | 29 + .../dotnet/Qpid.Codec/IProtocolCodecFactory.cs | 37 + trunk/qpid/dotnet/Qpid.Codec/IProtocolDecoder.cs | 41 + .../dotnet/Qpid.Codec/IProtocolDecoderOutput.cs | 35 + trunk/qpid/dotnet/Qpid.Codec/IProtocolEncoder.cs | 41 + .../dotnet/Qpid.Codec/IProtocolEncoderOutput.cs | 37 + .../dotnet/Qpid.Codec/Properties/AssemblyInfo.cs | 53 + .../dotnet/Qpid.Codec/ProtocolCodecException.cs | 49 + .../dotnet/Qpid.Codec/ProtocolDecoderException.cs | 70 + .../dotnet/Qpid.Codec/ProtocolEncoderException.cs | 49 + trunk/qpid/dotnet/Qpid.Codec/Qpid.Codec.csproj | 82 + .../Support/SimpleProtocolDecoderOutput.cs | 44 + .../Support/SimpleProtocolEncoderOutput.cs | 43 + trunk/qpid/dotnet/Qpid.Codec/default.build | 47 + .../Qpid.Common.Tests/Properties/AssemblyInfo.cs | 54 + .../Qpid.Common.Tests/Qpid.Common.Tests.csproj | 87 + .../Qpid/Collections/TestConsumerProducerQueue.cs | 85 + .../Qpid/Collections/TestLinkedHashtable.cs | 83 + .../Qpid.Common.Tests/Qpid/Framing/TestAMQType.cs | 270 + .../Qpid/Framing/TestEncodingUtils.cs | 60 + trunk/qpid/dotnet/Qpid.Common.Tests/default.build | 52 + .../Qpid.Common/AMQChannelClosedException.cs | 40 + .../Qpid.Common/AMQConnectionClosedException.cs | 51 + .../dotnet/Qpid.Common/AMQDisconnectedException.cs | 45 + trunk/qpid/dotnet/Qpid.Common/AMQException.cs | 149 + .../Qpid.Common/AMQInvalidArgumentException.cs | 46 + .../Qpid.Common/AMQInvalidRoutingKeyException.cs | 46 + .../dotnet/Qpid.Common/AMQUndeliveredException.cs | 59 + trunk/qpid/dotnet/Qpid.Common/AssemblySettings.cs | 160 + .../Qpid.Common/Collections/BlockingQueue.cs | 95 + .../Collections/ConsumerProducerQueue.cs | 113 + .../Qpid.Common/Collections/LinkedBlockingQueue.cs | 384 + .../Qpid.Common/Collections/LinkedHashtable.cs | 327 + .../Qpid.Common/Collections/SynchronousQueue.cs | 375 + .../Qpid.Common/Framing/AMQDataBlockDecoder.cs | 155 + .../Qpid.Common/Framing/AMQDataBlockEncoder.cs | 65 + trunk/qpid/dotnet/Qpid.Common/Framing/AMQFrame.cs | 107 + .../Framing/AMQFrameDecodingException.cs | 59 + .../dotnet/Qpid.Common/Framing/AMQMethodBody.cs | 93 + .../Qpid.Common/Framing/AMQMethodBodyFactory.cs | 45 + .../Framing/AMQProtocolHeaderException.cs | 39 + trunk/qpid/dotnet/Qpid.Common/Framing/AMQType.cs | 700 + .../qpid/dotnet/Qpid.Common/Framing/AMQTypeMap.cs | 75 + .../dotnet/Qpid.Common/Framing/AMQTypedValue.cs | 76 + .../Framing/BasicContentHeaderProperties.cs | 290 + .../Qpid.Common/Framing/CompositeAMQDataBlock.cs | 85 + .../qpid/dotnet/Qpid.Common/Framing/ContentBody.cs | 100 + .../Qpid.Common/Framing/ContentBodyFactory.cs | 53 + .../Qpid.Common/Framing/ContentHeaderBody.cs | 118 + .../Framing/ContentHeaderBodyFactory.cs | 53 + .../Framing/ContentHeaderPropertiesFactory.cs | 63 + .../dotnet/Qpid.Common/Framing/EncodingUtils.cs | 460 + .../qpid/dotnet/Qpid.Common/Framing/FieldTable.cs | 633 + .../dotnet/Qpid.Common/Framing/HeartbeatBody.cs | 64 + .../Qpid.Common/Framing/HeartbeatBodyFactory.cs | 32 + trunk/qpid/dotnet/Qpid.Common/Framing/IBody.cs | 63 + .../dotnet/Qpid.Common/Framing/IBodyFactory.cs | 38 + .../Framing/IContentHeaderProperties.cs | 65 + .../qpid/dotnet/Qpid.Common/Framing/IDataBlock.cs | 47 + .../Qpid.Common/Framing/IEncodableAMQDataBlock.cs | 31 + .../Qpid.Common/Framing/ProtocolInitiation.cs | 158 + .../dotnet/Qpid.Common/Properties/AssemblyInfo.cs | 52 + .../dotnet/Qpid.Common/Protocol/AMQConstant.cs | 100 + trunk/qpid/dotnet/Qpid.Common/Qpid.Common.csproj | 104 + trunk/qpid/dotnet/Qpid.Common/amqp.xml | 3929 +++ trunk/qpid/dotnet/Qpid.Common/build.xml | 95 + trunk/qpid/dotnet/Qpid.Common/default.build | 49 + .../Qpid.Common/lib/log4net/log4net-licence.txt | 201 + .../dotnet/Qpid.Common/lib/log4net/log4net.dll | Bin 0 -> 266240 bytes .../dotnet/Qpid.Common/lib/log4net/log4net.xml | 28676 +++++++++++++++++++ .../dotnet/Qpid.Common/lib/saxon/saxon-licence.txt | 471 + trunk/qpid/dotnet/Qpid.Common/lib/saxon/saxon8.jar | Bin 0 -> 3118502 bytes .../lib/seclib-1.0.0/Org.Mentalis.Security.dll | Bin 0 -> 184320 bytes .../lib/seclib-1.0.0/seclib-license.txt | 13 + .../dotnet/Qpid.Common/resources/registry.template | 4 + .../qpid/dotnet/Qpid.Common/stylesheets/csharp.xsl | 251 + .../dotnet/Qpid.Common/stylesheets/framing.xsl | 65 + trunk/qpid/dotnet/Qpid.Common/stylesheets/java.xsl | 230 + .../dotnet/Qpid.Common/stylesheets/prepare1.xsl | 109 + .../dotnet/Qpid.Common/stylesheets/prepare2.xsl | 68 + .../dotnet/Qpid.Common/stylesheets/prepare3.xsl | 64 + .../qpid/dotnet/Qpid.Common/stylesheets/readme.txt | 52 + .../dotnet/Qpid.Common/stylesheets/registry.xsl | 33 + .../qpid/dotnet/Qpid.Common/stylesheets/utils.xsl | 185 + .../Properties/AssemblyInfo.cs | 53 + .../Qpid.Integration.Tests.csproj | 124 + .../qpid/dotnet/Qpid.Integration.Tests/README.txt | 3 + .../dotnet/Qpid.Integration.Tests/default.build | 69 + .../Qpid.Integration.Tests/framework/Assertion.cs | 39 + .../Qpid.Integration.Tests/framework/Assertion.csx | 39 + .../framework/AssertionBase.csx | 65 + .../framework/BrokerLifecycleAware.csx | 67 + .../framework/CauseFailure.csx | 41 + .../framework/CauseFailureUserPrompt.csx | 63 + .../Qpid.Integration.Tests/framework/Circuit.cs | 102 + .../Qpid.Integration.Tests/framework/Circuit.csx | 103 + .../framework/CircuitEnd.csx | 86 + .../framework/CircuitEndBase.csx | 146 + .../framework/ExceptionMonitor.csx | 184 + .../framework/FrameworkBaseCase.cs | 282 + .../framework/FrameworkBaseCase.csx | 272 + .../framework/LocalCircuitFactory.csx | 301 + .../framework/MessageMonitor.csx | 102 + .../framework/MessagingTestConfigProperties.csx | 652 + .../framework/NotApplicableAssertion.csx | 111 + .../Qpid.Integration.Tests/framework/Publisher.cs | 65 + .../Qpid.Integration.Tests/framework/Publisher.csx | 72 + .../Qpid.Integration.Tests/framework/README.txt | 3 + .../Qpid.Integration.Tests/framework/Receiver.cs | 80 + .../Qpid.Integration.Tests/framework/Receiver.csx | 88 + .../framework/TestClientDetails.cs | 84 + .../framework/TestClientDetails.csx | 82 + .../Qpid.Integration.Tests/framework/TestModel.cs | 657 + .../Qpid.Integration.Tests/framework/TestUtils.csx | 188 + .../Qpid.Integration.Tests/framework/alljava.csx | 7851 +++++ .../clocksynch/ClockSynchFailureException.csx | 45 + .../framework/clocksynch/ClockSynchThread.csx | 117 + .../framework/clocksynch/ClockSynchronizer.csx | 66 + .../clocksynch/LocalClockSynchronizer.csx | 70 + .../framework/clocksynch/UDPClockSynchronizer.csx | 453 + .../framework/distributedcircuit/TestClient.csx | 493 + .../distributedcircuit/TestClientCircuitEnd.csx | 312 + .../TestClientControlledTest.csx | 104 + .../framework/localcircuit/LocalCircuitImpl.csx | 290 + .../framework/localcircuit/LocalPublisherImpl.csx | 164 + .../framework/localcircuit/LocalReceiverImpl.csx | 137 + .../framework/sequencers/BaseCircuitFactory.csx | 128 + .../framework/sequencers/CircuitFactory.cs | 85 + .../framework/sequencers/CircuitFactory.csx | 99 + .../interactive/FailoverTest.cs | 397 + .../interactive/SendReceiveTest.cs | 181 + .../interop/InteropClientTestCase.cs | 87 + .../interop/TestCases/TestCase1DummyRun.cs | 89 + .../interop/TestCases/TestCase2BasicP2P.cs | 205 + .../interop/TestCases/TestCase3BasicPubSub.cs | 244 + .../Qpid.Integration.Tests/interop/TestClient.cs | 379 + .../dotnet/Qpid.Integration.Tests/log4net.config | 69 + .../old/ServiceProvidingClient.tmp | 150 + .../old/ServiceRequestingClient.tmp | 182 + .../testcases/BaseMessagingTestFixture.cs | 261 + .../testcases/ChannelQueueTest.cs | 237 + .../testcases/CommitRollbackTest.cs | 261 + .../testcases/ConnectionTest.cs | 73 + .../testcases/DurableSubscriptionTest.cs | 166 + .../testcases/HeadersExchangeTest.cs | 282 + .../testcases/MandatoryMessageTest.cs | 149 + .../testcases/ProducerMultiConsumerTest.cs | 167 + .../testcases/Qpid.Integration.Tests.csproj | 63 + .../testcases/SslConnectionTest.cs | 64 + .../testcases/SustainedTest.cs | 109 + .../qpid/dotnet/Qpid.Messaging/AcknowledgeMode.cs | 42 + .../Qpid.Messaging/ChannelLimitReachedException.cs | 60 + trunk/qpid/dotnet/Qpid.Messaging/DeliveryMode.cs | 28 + .../Qpid.Messaging/ExchangeClassConstants.cs | 29 + .../dotnet/Qpid.Messaging/ExchangeNameDefaults.cs | 42 + trunk/qpid/dotnet/Qpid.Messaging/IBytesMessage.cs | 63 + trunk/qpid/dotnet/Qpid.Messaging/IChannel.cs | 252 + trunk/qpid/dotnet/Qpid.Messaging/ICloseable.cs | 38 + trunk/qpid/dotnet/Qpid.Messaging/IConnection.cs | 55 + .../dotnet/Qpid.Messaging/IConnectionFactory.cs | 28 + .../dotnet/Qpid.Messaging/IConnectionListener.cs | 59 + trunk/qpid/dotnet/Qpid.Messaging/IFieldTable.cs | 42 + trunk/qpid/dotnet/Qpid.Messaging/IHeaders.cs | 67 + trunk/qpid/dotnet/Qpid.Messaging/IMessage.cs | 97 + .../qpid/dotnet/Qpid.Messaging/IMessageConsumer.cs | 79 + .../dotnet/Qpid.Messaging/IMessagePublisher.cs | 92 + trunk/qpid/dotnet/Qpid.Messaging/ITextMessage.cs | 27 + .../Qpid.Messaging/MessageConsumerBuilder.cs | 105 + .../Qpid.Messaging/MessageNotReadableException.cs | 39 + .../Qpid.Messaging/MessageNotWritableException.cs | 38 + .../Qpid.Messaging/MessagePublisherBuilder.cs | 91 + .../Qpid.Messaging/Properties/AssemblyInfo.cs | 56 + .../dotnet/Qpid.Messaging/Qpid.Messaging.csproj | 115 + trunk/qpid/dotnet/Qpid.Messaging/QpidException.cs | 43 + .../Qpid.Messaging/ResourceAllocationException.cs | 39 + trunk/qpid/dotnet/Qpid.Messaging/default.build | 45 + trunk/qpid/dotnet/Qpid.NET.FxCop | 16755 +++++++++++ trunk/qpid/dotnet/Qpid.NET.sln | 96 + trunk/qpid/dotnet/Qpid.Sasl.Tests/App.config | 33 + .../Mechanisms/AnonymousSaslClientTests.cs | 72 + .../Mechanisms/CramMD5SaslClientTests.cs | 90 + .../Mechanisms/DigestSaslClientTests.cs | 249 + .../Mechanisms/ExternalSaslClientTests.cs | 71 + .../Mechanisms/PlainSaslClientTests.cs | 88 + .../Qpid.Sasl.Tests/Properties/AssemblyInfo.cs | 56 + .../dotnet/Qpid.Sasl.Tests/Qpid.Sasl.Tests.csproj | 86 + trunk/qpid/dotnet/Qpid.Sasl.Tests/SaslTests.cs | 133 + .../dotnet/Qpid.Sasl.Tests/TestClientFactory.cs | 75 + trunk/qpid/dotnet/Qpid.Sasl.Tests/default.build | 52 + trunk/qpid/dotnet/Qpid.Sasl/Callbacks.cs | 139 + .../Qpid.Sasl/Configuration/SaslConfiguration.cs | 90 + .../SaslConfigurationSectionHandler.cs | 84 + .../qpid/dotnet/Qpid.Sasl/DefaultClientFactory.cs | 99 + .../qpid/dotnet/Qpid.Sasl/ISaslCallbackHandler.cs | 35 + trunk/qpid/dotnet/Qpid.Sasl/ISaslClient.cs | 42 + trunk/qpid/dotnet/Qpid.Sasl/ISaslClientFactory.cs | 40 + trunk/qpid/dotnet/Qpid.Sasl/MD5HMAC.cs | 115 + .../Qpid.Sasl/Mechanisms/AnonymousSaslClient.cs | 69 + .../Qpid.Sasl/Mechanisms/CramMD5HexSaslClient.cs | 93 + .../Qpid.Sasl/Mechanisms/CramMD5SaslClient.cs | 91 + .../Qpid.Sasl/Mechanisms/DigestSaslClient.cs | 576 + .../Qpid.Sasl/Mechanisms/ExternalSaslClient.cs | 69 + .../dotnet/Qpid.Sasl/Mechanisms/PlainSaslClient.cs | 81 + .../dotnet/Qpid.Sasl/Properties/AssemblyInfo.cs | 57 + trunk/qpid/dotnet/Qpid.Sasl/Qpid.Sasl.csproj | 73 + trunk/qpid/dotnet/Qpid.Sasl/Sasl.cs | 115 + trunk/qpid/dotnet/Qpid.Sasl/SaslClient.cs | 145 + trunk/qpid/dotnet/Qpid.Sasl/SaslException.cs | 56 + trunk/qpid/dotnet/Qpid.Sasl/SaslProperties.cs | 42 + trunk/qpid/dotnet/Qpid.Sasl/default.build | 45 + trunk/qpid/dotnet/README.txt | 68 + trunk/qpid/dotnet/RELEASE_NOTES.txt | 26 + trunk/qpid/dotnet/TestClient/Program.cs | 30 + .../dotnet/TestClient/Properties/AssemblyInfo.cs | 53 + trunk/qpid/dotnet/TestClient/TestClient.csproj | 115 + trunk/qpid/dotnet/TestClient/default.build | 47 + trunk/qpid/dotnet/TopicListener/Program.cs | 30 + .../TopicListener/Properties/AssemblyInfo.cs | 53 + .../qpid/dotnet/TopicListener/TopicListener.csproj | 115 + trunk/qpid/dotnet/TopicListener/default.build | 47 + trunk/qpid/dotnet/TopicPublisher/Program.cs | 30 + .../TopicPublisher/Properties/AssemblyInfo.cs | 53 + .../dotnet/TopicPublisher/TopicPublisher.csproj | 111 + trunk/qpid/dotnet/TopicPublisher/default.build | 47 + trunk/qpid/dotnet/build-framing.bat | 23 + trunk/qpid/dotnet/build-mono | 3 + trunk/qpid/dotnet/build-msbuild.bat | 22 + trunk/qpid/dotnet/build-nant-release | 55 + trunk/qpid/dotnet/build-nant.bat | 22 + trunk/qpid/dotnet/client-010/App.config | 34 + trunk/qpid/dotnet/client-010/LICENSE.txt | 757 + trunk/qpid/dotnet/client-010/NOTICE.txt | 32 + trunk/qpid/dotnet/client-010/README.txt | 69 + .../client-010/addins/ExcelAddIn/Excel.exe.config | 12 + .../client-010/addins/ExcelAddIn/ExcelAddIn.cs | 290 + .../client-010/addins/ExcelAddIn/ExcelAddIn.csproj | 69 + .../addins/ExcelAddIn/Properties/AssemblyInfo.cs | 56 + .../ExcelAddInMessageProcessor.csproj | 66 + .../addins/ExcelAddInMessageProcessor/Processor.cs | 44 + .../Properties/AssemblyInfo.cs | 56 + .../ExcelAddInProducer/ExcelAddInProducer.csproj | 63 + .../addins/ExcelAddInProducer/Program.cs | 62 + .../ExcelAddInProducer/Properties/AssemblyInfo.cs | 54 + trunk/qpid/dotnet/client-010/addins/README.txt | 29 + trunk/qpid/dotnet/client-010/client/Client.csproj | 222 + .../client-010/client/Properties/AssemblyInfo.cs | 56 + trunk/qpid/dotnet/client-010/client/client.sln | 109 + trunk/qpid/dotnet/client-010/client/client.suo | Bin 0 -> 572415 bytes .../qpid/dotnet/client-010/client/client/Client.cs | 170 + .../client/client/ClientConnectionDelegate.cs | 108 + .../client-010/client/client/ClientInterface.cs | 59 + .../client-010/client/client/ClientSession.cs | 109 + .../client/client/ClientSessionDelegate.cs | 55 + .../client/client/ClosedListenerInterface.cs | 29 + .../dotnet/client-010/client/client/ErrorCode.cs | 140 + .../dotnet/client-010/client/client/IClient.cs | 81 + .../client-010/client/client/IClientSession.cs | 18 + .../client-010/client/client/IClosedListener.cs | 29 + .../dotnet/client-010/client/client/IMessage.cs | 48 + .../client-010/client/client/IMessageListener.cs | 31 + .../dotnet/client-010/client/client/Message.cs | 131 + trunk/qpid/dotnet/client-010/client/default.build | 46 + .../dotnet/client-010/client/transport/Binary.cs | 129 + .../dotnet/client-010/client/transport/Binding.cs | 34 + .../dotnet/client-010/client/transport/Channel.cs | 174 + .../client-010/client/transport/ChannelDelegate.cs | 41 + .../client-010/client/transport/ClientDelegate.cs | 35 + .../client-010/client/transport/Connection.cs | 168 + .../client/transport/ConnectionDelegate.cs | 108 + .../dotnet/client-010/client/transport/Field.cs | 74 + .../dotnet/client-010/client/transport/Future.cs | 38 + .../dotnet/client-010/client/transport/Header.cs | 83 + .../dotnet/client-010/client/transport/IBinding.cs | 34 + .../dotnet/client-010/client/transport/IFuture.cs | 38 + .../client/transport/IProtocolDelegate.cs | 37 + .../client-010/client/transport/IProtocolEvent.cs | 42 + .../client-010/client/transport/IReceiver.cs | 38 + .../dotnet/client-010/client/transport/ISender.cs | 32 + .../dotnet/client-010/client/transport/ISession.cs | 52 + .../dotnet/client-010/client/transport/Method.cs | 150 + .../client/transport/ProtocolDelegate.cs | 37 + .../client-010/client/transport/ProtocolError.cs | 85 + .../client-010/client/transport/ProtocolEvent.cs | 42 + .../client-010/client/transport/ProtocolHeader.cs | 124 + .../dotnet/client-010/client/transport/Range.cs | 117 + .../dotnet/client-010/client/transport/RangeSet.cs | 150 + .../client-010/client/transport/ReceivedPayload.cs | 43 + .../dotnet/client-010/client/transport/Receiver.cs | 38 + .../dotnet/client-010/client/transport/Sender.cs | 32 + .../dotnet/client-010/client/transport/Session.cs | 522 + .../client-010/client/transport/SessionDelegate.cs | 126 + .../dotnet/client-010/client/transport/Struct.cs | 121 + .../client/transport/codec/AbstractDecoder.cs | 399 + .../client/transport/codec/AbstractEncoder.cs | 590 + .../client-010/client/transport/codec/Decoder.cs | 72 + .../client-010/client/transport/codec/Encodable.cs | 37 + .../client-010/client/transport/codec/Encoder.cs | 70 + .../client-010/client/transport/codec/IDecoder.cs | 72 + .../client/transport/codec/IEncodable.cs | 37 + .../client-010/client/transport/codec/IEncoder.cs | 70 + .../client-010/client/transport/codec/MSDecoder.cs | 110 + .../client-010/client/transport/codec/MSEncoder.cs | 172 + .../transport/exception/ConnectionException.cs | 49 + .../client/transport/exception/ExceptionArgs.cs | 41 + .../exception/ProtocolVersionException.cs | 59 + .../transport/exception/SessionClosedException.cs | 38 + .../client/transport/exception/SessionException.cs | 45 + .../transport/exception/TransportException.cs | 46 + .../client/transport/network/Assembler.cs | 254 + .../client/transport/network/Disassembler.cs | 222 + .../client-010/client/transport/network/Frame.cs | 143 + .../client/transport/network/IIoSender.cs | 28 + .../client/transport/network/INetworkDelegate.cs | 40 + .../client/transport/network/INetworkEvent.cs | 32 + .../client/transport/network/InputHandler.cs | 266 + .../client/transport/network/NetworkDelegate.cs | 40 + .../client/transport/network/NetworkEvent.cs | 32 + .../client/transport/network/io/IIoSender.cs | 28 + .../client/transport/network/io/IIoTransport.cs | 57 + .../client/transport/network/io/IoReceiver.cs | 185 + .../client/transport/network/io/IoSSLTransport.cs | 192 + .../client/transport/network/io/IoSender.cs | 134 + .../client/transport/network/io/IoTransport.cs | 141 + .../client/transport/util/ByteEncoder.cs | 218 + .../client/transport/util/CircularBuffer.cs | 132 + .../client-010/client/transport/util/Functions.cs | 41 + .../client-010/client/transport/util/Logger.cs | 114 + .../client/transport/util/ResultFuture.cs | 80 + .../client-010/client/transport/util/Serial.cs | 94 + .../client-010/client/transport/util/UUID.cs | 129 + trunk/qpid/dotnet/client-010/default.build | 275 + trunk/qpid/dotnet/client-010/demo/Demo.csproj | 90 + trunk/qpid/dotnet/client-010/demo/Program.cs | 126 + .../client-010/demo/Properties/AssemblyInfo.cs | 54 + .../demo/Properties/Resources.Designer.cs | 63 + .../client-010/demo/Properties/Resources.resx | 117 + .../demo/Properties/Settings.Designer.cs | 26 + .../client-010/demo/Properties/Settings.settings | 7 + trunk/qpid/dotnet/client-010/demo/default.build | 48 + .../direct/example-direct-Listener/Listener.cs | 117 + .../Properties/AssemblyInfo.cs | 54 + .../direct/example-direct-Listener/default.build | 48 + .../example-direct-Listener.csproj | 65 + .../direct/example-direct-producer/Producer.cs | 92 + .../Properties/AssemblyInfo.cs | 54 + .../direct/example-direct-producer/default.build | 48 + .../example-direct-producer.csproj | 65 + .../qpid/dotnet/client-010/examples/direct/verify | 37 + .../dotnet/client-010/examples/direct/verify.in | 14 + .../client-010/examples/direct/verify_cpp_dotnet | 10 + .../examples/direct/verify_cpp_dotnet.in | 14 + .../client-010/examples/direct/verify_dotnet_cpp | 10 + .../examples/direct/verify_dotnet_cpp.in | 15 + .../client-010/examples/direct/verify_dotnet_java | 15 + .../examples/direct/verify_dotnet_java.in | 20 + .../examples/direct/verify_dotnet_python | 10 + .../examples/direct/verify_dotnet_python.in | 14 + .../client-010/examples/direct/verify_java_dotnet | 15 + .../examples/direct/verify_java_dotnet.in | 29 + .../examples/direct/verify_python_dotnet | 10 + .../examples/direct/verify_python_dotnet.in | 14 + .../fanout/example-fanout-Listener/Listener.cs | 126 + .../Properties/AssemblyInfo.cs | 54 + .../fanout/example-fanout-Listener/default.build | 48 + .../example-fanout-Listener.csproj | 65 + .../fanout/example-fanout-Producer/Producer.cs | 89 + .../Properties/AssemblyInfo.cs | 54 + .../fanout/example-fanout-Producer/default.build | 48 + .../example-fanout-Producer.csproj | 65 + .../qpid/dotnet/client-010/examples/fanout/verify | 36 + .../dotnet/client-010/examples/fanout/verify.in | 14 + .../client-010/examples/fanout/verify_cpp_dotnet | 11 + .../examples/fanout/verify_cpp_dotnet.in | 14 + .../client-010/examples/fanout/verify_dotnet_cpp | 12 + .../examples/fanout/verify_dotnet_cpp.in | 15 + .../client-010/examples/fanout/verify_dotnet_java | 16 + .../examples/fanout/verify_dotnet_java.in | 19 + .../examples/fanout/verify_dotnet_python | 11 + .../examples/fanout/verify_dotnet_python.in | 14 + .../client-010/examples/fanout/verify_java_dotnet | 16 + .../examples/fanout/verify_java_dotnet.in | 29 + .../examples/fanout/verify_python_dotnet | 11 + .../examples/fanout/verify_python_dotnet.in | 14 + .../pub-sub/example-pub-sub-Listener/Listener.cs | 143 + .../Properties/AssemblyInfo.cs | 54 + .../pub-sub/example-pub-sub-Listener/default.build | 48 + .../example-pub-sub-Listener.csproj | 65 + .../Properties/AssemblyInfo.cs | 54 + .../pub-sub/example-pub-sub-Publisher/Publisher.cs | 98 + .../example-pub-sub-Publisher/default.build | 48 + .../example-pub-sub-Publisher.csproj | 65 + .../qpid/dotnet/client-010/examples/pub-sub/verify | 36 + .../dotnet/client-010/examples/pub-sub/verify.in | 95 + .../client-010/examples/pub-sub/verify_cpp_dotnet | 12 + .../examples/pub-sub/verify_cpp_dotnet.in | 55 + .../client-010/examples/pub-sub/verify_dotnet_cpp | 11 + .../examples/pub-sub/verify_dotnet_cpp.in | 99 + .../client-010/examples/pub-sub/verify_dotnet_java | 15 + .../examples/pub-sub/verify_dotnet_java.in | 95 + .../examples/pub-sub/verify_dotnet_python | 11 + .../examples/pub-sub/verify_dotnet_python.in | 95 + .../client-010/examples/pub-sub/verify_java_dotnet | 15 + .../examples/pub-sub/verify_java_dotnet.in | 95 + .../examples/pub-sub/verify_python_dotnet | 11 + .../examples/pub-sub/verify_python_dotnet.in | 55 + .../Properties/AssemblyInfo.cs | 54 + .../RequestResponseClient.cs | 142 + .../example-request-response-Client/default.build | 48 + .../example-request-response-Client.csproj | 65 + .../Properties/AssemblyInfo.cs | 54 + .../example-request-response-Server/Server.cs | 141 + .../example-request-response-Server/default.build | 48 + .../example-request-response-Server.csproj | 65 + .../client-010/examples/request-response/verify | 36 + .../client-010/examples/request-response/verify.in | 16 + .../examples/request-response/verify_cpp_dotnet | 12 + .../examples/request-response/verify_cpp_dotnet.in | 17 + .../examples/request-response/verify_dotnet_cpp | 12 + .../examples/request-response/verify_dotnet_cpp.in | 18 + .../examples/request-response/verify_dotnet_java | 16 + .../request-response/verify_dotnet_java.in | 21 + .../examples/request-response/verify_dotnet_python | 12 + .../request-response/verify_dotnet_python.in | 17 + .../examples/request-response/verify_java_dotnet | 15 + .../request-response/verify_java_dotnet.in | 36 + .../examples/request-response/verify_python_dotnet | 12 + .../request-response/verify_python_dotnet.in | 12 + trunk/qpid/dotnet/client-010/gentool/Composite.tpl | 291 + trunk/qpid/dotnet/client-010/gentool/Constant.tpl | 37 + trunk/qpid/dotnet/client-010/gentool/Enum.tpl | 38 + trunk/qpid/dotnet/client-010/gentool/IInvoker.tpl | 57 + trunk/qpid/dotnet/client-010/gentool/Invoker.tpl | 67 + .../dotnet/client-010/gentool/MethodDelegate.tpl | 35 + trunk/qpid/dotnet/client-010/gentool/Option.tpl | 42 + .../dotnet/client-010/gentool/StructFactory.tpl | 64 + trunk/qpid/dotnet/client-010/gentool/Type.tpl | 103 + trunk/qpid/dotnet/client-010/gentool/build.xml | 52 + trunk/qpid/dotnet/client-010/gentool/codegen | 86 + .../dotnet/client-010/gentool/dotnetgenutil.py | 271 + .../client-010/lib/log4net/log4net-licence.txt | 201 + .../qpid/dotnet/client-010/lib/log4net/log4net.dll | Bin 0 -> 266240 bytes .../qpid/dotnet/client-010/lib/log4net/log4net.xml | 28676 +++++++++++++++++++ .../dotnet/client-010/lib/nunit/nunit-licence.txt | 23 + .../client-010/lib/nunit/nunit.framework.dll | Bin 0 -> 45056 bytes .../dotnet/client-010/lib/plossum/C5-License.txt | 27 + trunk/qpid/dotnet/client-010/lib/plossum/C5.dll | Bin 0 -> 274432 bytes .../client-010/lib/plossum/Plossum CommandLine.dll | Bin 0 -> 98304 bytes .../qpid/dotnet/client-010/lib/plossum/license.txt | 28 + trunk/qpid/dotnet/client-010/log.xml | 46 + .../management/console/AbstractConsole.cs | 45 + .../dotnet/client-010/management/console/Agent.cs | 75 + .../dotnet/client-010/management/console/Broker.cs | 351 + .../client-010/management/console/BrokerURL.cs | 71 + .../client-010/management/console/ClassKey.cs | 107 + .../client-010/management/console/Console.cs | 46 + .../client-010/management/console/MethodResult.cs | 67 + .../client-010/management/console/ObjectID.cs | 88 + .../client-010/management/console/QMFEvent.cs | 74 + .../client-010/management/console/QMFObject.cs | 294 + .../management/console/SchemaArgument.cs | 59 + .../client-010/management/console/SchemaClass.cs | 141 + .../client-010/management/console/SchemaMethod.cs | 66 + .../management/console/SchemaProperty.cs | 59 + .../management/console/SchemaStatistic.cs | 54 + .../management/console/SchemaVariable.cs | 84 + .../management/console/SequenceManager.cs | 62 + .../client-010/management/console/Session.cs | 796 + .../dotnet/client-010/management/console/Util.cs | 150 + .../client-010/management/console/XMLUtil.cs | 106 + .../client-010/management/console/console.csproj | 81 + .../client-010/management/console/console.sln | 26 + .../management/console/console.userprefs | 42 + .../management/console/console.usertasks | 2 + .../client-010/management/console/default.build | 54 + trunk/qpid/dotnet/client-010/perftest/PerfTest.cs | 715 + .../client-010/perftest/Properties/AssemblyInfo.cs | 54 + trunk/qpid/dotnet/client-010/perftest/README.txt | 38 + .../qpid/dotnet/client-010/perftest/default.build | 50 + .../dotnet/client-010/perftest/perftest.csproj | 72 + .../client-010/test/Helpers/ConfigHelpers.cs | 44 + .../client-010/test/Properties/AssemblyInfo.cs | 56 + .../dotnet/client-010/test/Qpid Test.dll.config | 31 + trunk/qpid/dotnet/client-010/test/Test.csproj | 82 + trunk/qpid/dotnet/client-010/test/default.build | 55 + trunk/qpid/dotnet/client-010/test/interop/Admin.cs | 90 + .../client-010/test/interop/ApplicationHeaders.cs | 83 + .../client-010/test/interop/ConnectionTests.cs | 59 + .../qpid/dotnet/client-010/test/interop/Message.cs | 180 + .../dotnet/client-010/test/interop/TestCase.cs | 96 + .../test/transport/util/ByteEncoderTest.cs | 106 + .../test/transport/util/CircularBufferTest.cs | 89 + .../test/transport/util/ResultFutureTest.cs | 103 + .../client-010/test/transport/util/SerialTest.cs | 75 + .../client-010/test/transport/util/UUIDTest.cs | 64 + .../client-010/wcf/Properties/AssemblyInfo.cs | 57 + .../qpid/dotnet/client-010/wcf/demo/ConfigDemo.suo | Bin 0 -> 23552 bytes trunk/qpid/dotnet/client-010/wcf/demo/Demo.suo | Bin 0 -> 33280 bytes .../wcf/demo/wcfBookingClient/Form1.Designer.cs | 185 + .../client-010/wcf/demo/wcfBookingClient/Form1.cs | 96 + .../wcf/demo/wcfBookingClient/Form1.resx | 123 + .../wcf/demo/wcfBookingClient/Program.cs | 41 + .../wcfBookingClient/Properties/AssemblyInfo.cs | 57 + .../Properties/Resources.Designer.cs | 92 + .../wcfBookingClient/Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 51 + .../wcfBookingClient/Properties/Settings.settings | 7 + .../demo/wcfBookingClient/wcBookingClient.csproj | 103 + .../wcf/demo/wcfBookingServer/Booking.cs | 62 + .../wcf/demo/wcfBookingServer/IBooking.cs | 43 + .../client-010/wcf/demo/wcfBookingServer/Order.cs | 45 + .../wcf/demo/wcfBookingServer/Program.cs | 98 + .../wcfBookingServer/Properties/AssemblyInfo.cs | 57 + .../wcf/demo/wcfBookingServer/Receipt.cs | 46 + .../demo/wcfBookingServer/wcfBookingServer.csproj | 77 + .../client-010/wcf/demo/wcfHelloClient/App.config | 56 + .../wcf/demo/wcfHelloClient/HelloClient.cs | 36 + .../wcf/demo/wcfHelloClient/IHelloService.cs | 33 + .../client-010/wcf/demo/wcfHelloClient/Program.cs | 48 + .../demo/wcfHelloClient/Properties/AssemblyInfo.cs | 57 + .../wcf/demo/wcfHelloClient/wcfHelloClient.csproj | 65 + .../client-010/wcf/demo/wcfHelloServer/App.config | 64 + .../wcf/demo/wcfHelloServer/HelloService.cs | 34 + .../wcf/demo/wcfHelloServer/IHelloService.cs | 32 + .../client-010/wcf/demo/wcfHelloServer/Program.cs | 47 + .../demo/wcfHelloServer/Properties/AssemblyInfo.cs | 57 + .../wcf/demo/wcfHelloServer/wcfHelloServer.csproj | 67 + .../client-010/wcf/demo/wcfRPC/IUpperCase.cs | 31 + .../dotnet/client-010/wcf/demo/wcfRPC/Program.cs | 113 + .../wcf/demo/wcfRPC/Properties/AssemblyInfo.cs | 57 + .../demo/wcfRPC/QpidBindingConfigurationElement.cs | 205 + .../dotnet/client-010/wcf/demo/wcfRPC/UpperCase.cs | 33 + .../client-010/wcf/demo/wcfRPC/wcfRPC.csproj | 73 + .../client-010/wcf/model/CommunicationOperation.cs | 31 + .../dotnet/client-010/wcf/model/QpidBinding.cs | 185 + .../dotnet/client-010/wcf/model/QpidChannelBase.cs | 167 + .../client-010/wcf/model/QpidChannelFactory.cs | 74 + .../client-010/wcf/model/QpidChannelListener.cs | 79 + .../wcf/model/QpidChannelListenerBase.cs | 111 + .../client-010/wcf/model/QpidInputChannel.cs | 218 + .../client-010/wcf/model/QpidInputChannelBase.cs | 101 + .../client-010/wcf/model/QpidOutputChannel.cs | 89 + .../client-010/wcf/model/QpidOutputChannelBase.cs | 77 + .../wcf/model/QpidTransportBindingElement.cs | 186 + .../client-010/wcf/model/QpidTransportElement.cs | 183 + trunk/qpid/dotnet/client-010/wcf/wcf.csproj | 59 + trunk/qpid/dotnet/client-010/wcf/wcf.sln | 50 + trunk/qpid/dotnet/client-010/wcf/wcf.suo | Bin 0 -> 105984 bytes trunk/qpid/dotnet/default.build | 252 + trunk/qpid/etc/LICENSE | 206 + trunk/qpid/etc/NOTICE | 8 + trunk/qpid/etc/svn-auto-props | 77 + trunk/qpid/extras/sasl/LICENSE | 234 + trunk/qpid/extras/sasl/Makefile.am | 30 + trunk/qpid/extras/sasl/bootstrap | 15 + trunk/qpid/extras/sasl/build-aux/compile | 142 + trunk/qpid/extras/sasl/build-aux/config.guess | 1501 + trunk/qpid/extras/sasl/build-aux/config.rpath | 614 + trunk/qpid/extras/sasl/build-aux/config.sub | 1619 ++ trunk/qpid/extras/sasl/build-aux/depcomp | 584 + trunk/qpid/extras/sasl/build-aux/install-sh | 507 + trunk/qpid/extras/sasl/build-aux/mdate-sh | 201 + trunk/qpid/extras/sasl/build-aux/missing | 367 + trunk/qpid/extras/sasl/configure.ac | 318 + trunk/qpid/extras/sasl/include/saslwrapper.h | 146 + trunk/qpid/extras/sasl/m4/ac_pkg_swig.m4 | 118 + trunk/qpid/extras/sasl/m4/clock_time.m4 | 30 + trunk/qpid/extras/sasl/m4/compiler-flags.m4 | 23 + trunk/qpid/extras/sasl/m4/cppunit.m4 | 89 + trunk/qpid/extras/sasl/m4/extensions.m4 | 59 + trunk/qpid/extras/sasl/m4/libtool.m4 | 7360 +++++ trunk/qpid/extras/sasl/m4/ltoptions.m4 | 368 + trunk/qpid/extras/sasl/m4/ltsugar.m4 | 123 + trunk/qpid/extras/sasl/m4/ltversion.m4 | 23 + trunk/qpid/extras/sasl/m4/lt~obsolete.m4 | 92 + trunk/qpid/extras/sasl/m4/python.m4 | 168 + trunk/qpid/extras/sasl/python/Makefile.am | 43 + trunk/qpid/extras/sasl/python/python.i | 169 + trunk/qpid/extras/sasl/ruby/Makefile.am | 43 + trunk/qpid/extras/sasl/ruby/ruby.i | 124 + trunk/qpid/extras/sasl/src/Makefile.am | 39 + trunk/qpid/extras/sasl/src/cyrus/saslwrapper.cpp | 372 + trunk/qpid/extras/sasl/src/saslwrapper.i | 40 + trunk/qpid/gentools/LICENSE | 202 + trunk/qpid/gentools/NOTICE | 2 + trunk/qpid/gentools/README | 61 + trunk/qpid/gentools/README.txt | 102 + trunk/qpid/gentools/build | 37 + trunk/qpid/gentools/build.xml | 43 + trunk/qpid/gentools/lib/LICENSE | 0 trunk/qpid/gentools/lib/NOTICE | 0 trunk/qpid/gentools/lib/README.txt | 0 trunk/qpid/gentools/lib/velocity-1.4.jar | Bin 0 -> 361173 bytes trunk/qpid/gentools/lib/velocity-dep-1.4.jar | Bin 0 -> 517761 bytes .../src/org/apache/qpid/gentools/AmqpClass.java | 197 + .../src/org/apache/qpid/gentools/AmqpClassMap.java | 29 + .../src/org/apache/qpid/gentools/AmqpConstant.java | 191 + .../org/apache/qpid/gentools/AmqpConstantSet.java | 152 + .../src/org/apache/qpid/gentools/AmqpDomain.java | 89 + .../org/apache/qpid/gentools/AmqpDomainMap.java | 128 + .../apache/qpid/gentools/AmqpDomainVersionMap.java | 62 + .../src/org/apache/qpid/gentools/AmqpField.java | 269 + .../src/org/apache/qpid/gentools/AmqpFieldMap.java | 452 + .../src/org/apache/qpid/gentools/AmqpFlagMap.java | 77 + .../src/org/apache/qpid/gentools/AmqpMethod.java | 351 + .../org/apache/qpid/gentools/AmqpMethodMap.java | 36 + .../src/org/apache/qpid/gentools/AmqpModel.java | 132 + .../apache/qpid/gentools/AmqpOrdinalFieldMap.java | 96 + .../qpid/gentools/AmqpOrdinalVersionMap.java | 76 + .../qpid/gentools/AmqpOverloadedParameterMap.java | 29 + .../apache/qpid/gentools/AmqpParseException.java | 30 + .../qpid/gentools/AmqpTemplateException.java | 30 + .../qpid/gentools/AmqpTypeMappingException.java | 30 + .../src/org/apache/qpid/gentools/AmqpVersion.java | 72 + .../org/apache/qpid/gentools/AmqpVersionSet.java | 79 + .../qpid/gentools/BitFieldGenerateMethod.java | 29 + .../qpid/gentools/CommandGenerateMethod.java | 26 + .../apache/qpid/gentools/ConsolidatedField.java | 120 + .../src/org/apache/qpid/gentools/CppGenerator.java | 1716 ++ .../org/apache/qpid/gentools/DotnetGenerator.java | 382 + .../org/apache/qpid/gentools/GenerateMethod.java | 27 + .../src/org/apache/qpid/gentools/Generator.java | 857 + .../org/apache/qpid/gentools/JavaGenerator.java | 1826 ++ .../apache/qpid/gentools/LanguageConverter.java | 42 + .../src/org/apache/qpid/gentools/Main.java | 301 + .../qpid/gentools/MangledGenerateMethod.java | 26 + .../src/org/apache/qpid/gentools/NodeAware.java | 47 + .../src/org/apache/qpid/gentools/Printable.java | 28 + .../apache/qpid/gentools/SingleVersionClass.java | 103 + .../apache/qpid/gentools/SingleVersionField.java | 68 + .../apache/qpid/gentools/SingleVersionMethod.java | 154 + .../apache/qpid/gentools/SingleVersionModel.java | 71 + .../qpid/gentools/TargetDirectoryException.java | 30 + .../src/org/apache/qpid/gentools/Utils.java | 159 + .../qpid/gentools/VersionConsistencyCheck.java | 26 + .../templ.cpp/method/MethodBodyClass.h.tmpl | 112 + .../templ.cpp/model/AMQP_ClientOperations.h.tmpl | 82 + .../templ.cpp/model/AMQP_ClientProxy.cpp.tmpl | 52 + .../templ.cpp/model/AMQP_ClientProxy.h.tmpl | 75 + .../gentools/templ.cpp/model/AMQP_Constants.h.tmpl | 34 + .../templ.cpp/model/AMQP_HighestVersion.h.tmpl | 42 + .../templ.cpp/model/AMQP_MethodVersionMap.cpp.tmpl | 62 + .../templ.cpp/model/AMQP_MethodVersionMap.h.tmpl | 57 + .../templ.cpp/model/AMQP_ServerOperations.h.tmpl | 83 + .../templ.cpp/model/AMQP_ServerProxy.cpp.tmpl | 51 + .../templ.cpp/model/AMQP_ServerProxy.h.tmpl | 74 + .../templ.java/PropertyContentHeaderClass.tmpl | 208 + .../templ.java/method/version/MethodBodyClass.vm | 190 + .../templ.java/model/ProtocolVersionListClass.vm | 154 + .../templ.java/model/version/AmqpConstantsClass.vm | 37 + .../model/version/MethodRegistryClass.vm | 145 + trunk/qpid/gentools/xml-src/amqp-0.10.test.xml | 4241 +++ trunk/qpid/gentools/xml-src/amqp-0.8.test.xml | 3959 +++ trunk/qpid/gentools/xml-src/amqp-0.9.test.xml | 4282 +++ trunk/qpid/gentools/xml-src/cluster-0.9.test.xml | 59 + trunk/qpid/java/broker-plugins/MANIFEST.MF | 14 + trunk/qpid/java/broker-plugins/build.xml | 29 + .../java/org/apache/qpid/extras/Activator.java | 48 + .../exchanges/diagnostic/DiagnosticExchange.java | 227 + .../diagnostic/DiagnosticExchangeType.java | 57 + .../extras/exchanges/example/TestExchange.java | 156 + .../extras/exchanges/example/TestExchangeType.java | 57 + .../java/broker/bin/create-example-ssl-stores.bat | 36 + .../java/broker/bin/create-example-ssl-stores.sh | 38 + trunk/qpid/java/broker/bin/msTool.sh | 60 + trunk/qpid/java/broker/bin/qpid-passwd | 35 + trunk/qpid/java/broker/bin/qpid-server | 39 + trunk/qpid/java/broker/bin/qpid-server-bdb.bat | 22 + trunk/qpid/java/broker/bin/qpid-server.bat | 203 + trunk/qpid/java/broker/bin/qpid.start | 21 + trunk/qpid/java/broker/bin/qpid.stop | 178 + trunk/qpid/java/broker/bin/qpid.stopall | 27 + trunk/qpid/java/broker/build.xml | 105 + trunk/qpid/java/broker/etc/access | 19 + trunk/qpid/java/broker/etc/config.xml | 246 + trunk/qpid/java/broker/etc/debug.log4j.xml | 114 + trunk/qpid/java/broker/etc/jmxremote.access | 23 + trunk/qpid/java/broker/etc/log4j.xml | 115 + trunk/qpid/java/broker/etc/md5passwd | 21 + trunk/qpid/java/broker/etc/mstool-log4j.xml | 54 + trunk/qpid/java/broker/etc/passwd | 23 + trunk/qpid/java/broker/etc/passwdVhost | 19 + trunk/qpid/java/broker/etc/persistent_config.xml | 121 + trunk/qpid/java/broker/etc/qpid-server.conf | 25 + trunk/qpid/java/broker/etc/qpid-server.conf.jpp | 49 + trunk/qpid/java/broker/etc/qpid.passwd | 23 + trunk/qpid/java/broker/etc/transient_config.xml | 118 + trunk/qpid/java/broker/python-test.xml | 56 + trunk/qpid/java/broker/scripts/resetAlerting.sh | 95 + .../java/broker/src/main/grammar/SelectorParser.jj | 621 + .../java/broker/src/main/java/log4j.properties | 24 + .../apache/log4j/QpidCompositeRollingAppender.java | 1094 + .../apache/log4j/xml/QpidLog4JConfigurator.java | 319 + .../apache/qpid/configuration/Configuration.java | 188 + .../apache/qpid/server/AMQBrokerManagerMBean.java | 352 + .../java/org/apache/qpid/server/AMQChannel.java | 1196 + .../qpid/server/ExtractResendAndRequeue.java | 133 + .../src/main/java/org/apache/qpid/server/Main.java | 629 + .../org/apache/qpid/server/ManagedChannel.java | 68 + .../qpid/server/ack/UnacknowledgedMessageMap.java | 72 + .../server/ack/UnacknowledgedMessageMapImpl.java | 175 + .../configuration/ExchangeConfiguration.java | 58 + .../server/configuration/QueueConfiguration.java | 121 + .../configuration/SecurityConfiguration.java | 41 + .../server/configuration/ServerConfiguration.java | 701 + .../configuration/VirtualHostConfiguration.java | 180 + .../management/ConfigurationManagementMBean.java | 48 + .../qpid/server/connection/ConnectionRegistry.java | 80 + .../server/connection/IConnectionRegistry.java | 37 + .../qpid/server/exchange/AbstractExchange.java | 291 + .../server/exchange/DefaultExchangeFactory.java | 127 + .../server/exchange/DefaultExchangeRegistry.java | 157 + .../qpid/server/exchange/DirectExchange.java | 267 + .../org/apache/qpid/server/exchange/Exchange.java | 113 + .../qpid/server/exchange/ExchangeFactory.java | 43 + .../server/exchange/ExchangeInUseException.java | 45 + .../qpid/server/exchange/ExchangeInitialiser.java | 54 + .../qpid/server/exchange/ExchangeReferrer.java | 26 + .../qpid/server/exchange/ExchangeRegistry.java | 55 + .../apache/qpid/server/exchange/ExchangeType.java | 35 + .../qpid/server/exchange/FanoutExchange.java | 238 + .../qpid/server/exchange/HeadersBinding.java | 253 + .../qpid/server/exchange/HeadersExchange.java | 369 + .../org/apache/qpid/server/exchange/Index.java | 114 + .../apache/qpid/server/exchange/MessageRouter.java | 40 + .../apache/qpid/server/exchange/TopicExchange.java | 676 + .../qpid/server/exchange/headers/HeaderKey.java | 40 + .../exchange/headers/HeaderKeyDictionary.java | 50 + .../exchange/headers/HeaderMatcherResult.java | 25 + .../exchange/headers/HeadersMatcherDFAState.java | 339 + .../server/exchange/headers/HeadersParser.java | 439 + .../exchange/topic/TopicMatcherDFAState.java | 295 + .../server/exchange/topic/TopicMatcherResult.java | 25 + .../qpid/server/exchange/topic/TopicParser.java | 613 + .../qpid/server/exchange/topic/TopicWord.java | 54 + .../server/exchange/topic/TopicWordDictionary.java | 63 + .../qpid/server/filter/ArithmeticExpression.java | 275 + .../qpid/server/filter/BinaryExpression.java | 106 + .../qpid/server/filter/BooleanExpression.java | 38 + .../qpid/server/filter/ComparisonExpression.java | 599 + .../qpid/server/filter/ConstantExpression.java | 209 + .../org/apache/qpid/server/filter/Expression.java | 36 + .../apache/qpid/server/filter/FilterManager.java | 37 + .../qpid/server/filter/FilterManagerFactory.java | 67 + .../qpid/server/filter/JMSSelectorFilter.java | 62 + .../apache/qpid/server/filter/LogicExpression.java | 120 + .../apache/qpid/server/filter/MessageFilter.java | 28 + .../qpid/server/filter/NoConsumerFilter.java | 48 + .../qpid/server/filter/PropertyExpression.java | 235 + .../qpid/server/filter/SimpleFilterManager.java | 94 + .../apache/qpid/server/filter/UnaryExpression.java | 369 + .../apache/qpid/server/filter/XPathExpression.java | 126 + .../qpid/server/filter/XQueryExpression.java | 57 + .../qpid/server/filter/XalanXPathEvaluator.java | 101 + .../server/flow/AbstractFlowCreditManager.java | 71 + .../qpid/server/flow/BytesOnlyCreditManager.java | 89 + .../qpid/server/flow/CreditCreditManager.java | 188 + .../apache/qpid/server/flow/FlowCreditManager.java | 46 + .../qpid/server/flow/FlowCreditManager_0_10.java | 28 + .../qpid/server/flow/LimitlessCreditManager.java | 54 + .../server/flow/MessageAndBytesCreditManager.java | 92 + .../qpid/server/flow/MessageOnlyCreditManager.java | 88 + .../qpid/server/flow/Pre0_10CreditManager.java | 195 + .../qpid/server/flow/WindowCreditManager.java | 213 + .../qpid/server/handler/AccessRequestHandler.java | 77 + .../qpid/server/handler/BasicAckMethodHandler.java | 67 + .../server/handler/BasicCancelMethodHandler.java | 74 + .../server/handler/BasicConsumeMethodHandler.java | 180 + .../qpid/server/handler/BasicGetMethodHandler.java | 207 + .../server/handler/BasicPublishMethodHandler.java | 106 + .../qpid/server/handler/BasicQosHandler.java | 58 + .../server/handler/BasicRecoverMethodHandler.java | 73 + .../handler/BasicRecoverSyncMethodHandler.java | 83 + .../server/handler/BasicRejectMethodHandler.java | 125 + .../qpid/server/handler/ChannelCloseHandler.java | 77 + .../qpid/server/handler/ChannelCloseOkHandler.java | 53 + .../qpid/server/handler/ChannelFlowHandler.java | 66 + .../qpid/server/handler/ChannelOpenHandler.java | 138 + .../handler/ConnectionCloseMethodHandler.java | 72 + .../handler/ConnectionCloseOkMethodHandler.java | 63 + .../handler/ConnectionOpenMethodHandler.java | 104 + .../handler/ConnectionSecureOkMethodHandler.java | 126 + .../handler/ConnectionStartOkMethodHandler.java | 163 + .../handler/ConnectionTuneOkMethodHandler.java | 55 + .../qpid/server/handler/ExchangeBoundHandler.java | 178 + .../server/handler/ExchangeDeclareHandler.java | 127 + .../qpid/server/handler/ExchangeDeleteHandler.java | 80 + .../server/handler/OnCurrentThreadExecutor.java | 34 + .../qpid/server/handler/QueueBindHandler.java | 148 + .../qpid/server/handler/QueueDeclareHandler.java | 261 + .../qpid/server/handler/QueueDeleteHandler.java | 132 + .../qpid/server/handler/QueuePurgeHandler.java | 126 + .../qpid/server/handler/QueueUnbindHandler.java | 137 + .../server/handler/ServerMethodDispatcherImpl.java | 574 + .../handler/ServerMethodDispatcherImpl_0_9.java | 164 + .../handler/ServerMethodDispatcherImpl_0_91.java | 168 + .../handler/ServerMethodDispatcherImpl_8_0.java | 86 + .../qpid/server/handler/TxCommitHandler.java | 76 + .../qpid/server/handler/TxRollbackHandler.java | 82 + .../qpid/server/handler/TxSelectHandler.java | 63 + .../server/handler/UnexpectedMethodException.java | 33 + .../management/ServerInformationMBean.java | 71 + .../org/apache/qpid/server/logging/LogActor.java | 66 + .../org/apache/qpid/server/logging/LogMessage.java | 26 + .../org/apache/qpid/server/logging/LogSubject.java | 37 + .../qpid/server/logging/NullRootMessageLogger.java | 60 + .../qpid/server/logging/RawMessageLogger.java | 44 + .../qpid/server/logging/RootMessageLogger.java | 64 + .../qpid/server/logging/RootMessageLoggerImpl.java | 57 + .../server/logging/StartupRootMessageLogger.java | 49 + .../server/logging/actors/AMQPChannelActor.java | 64 + .../server/logging/actors/AMQPConnectionActor.java | 54 + .../qpid/server/logging/actors/AbstractActor.java | 69 + .../qpid/server/logging/actors/BrokerActor.java | 53 + .../qpid/server/logging/actors/CurrentActor.java | 121 + .../server/logging/actors/ManagementActor.java | 114 + .../qpid/server/logging/actors/QueueActor.java | 55 + .../server/logging/actors/SubscriptionActor.java | 49 + .../logging/management/LoggingManagementMBean.java | 819 + .../server/logging/messages/LogMessages.properties | 323 + .../logging/rawloggers/Log4jMessageLogger.java | 56 + .../logging/rawloggers/SystemOutMessageLogger.java | 40 + .../logging/subjects/AbstractLogSubject.java | 64 + .../server/logging/subjects/BindingLogSubject.java | 62 + .../server/logging/subjects/ChannelLogSubject.java | 67 + .../logging/subjects/ConnectionLogSubject.java | 137 + .../logging/subjects/ExchangeLogSubject.java | 46 + .../logging/subjects/MessageStoreLogSubject.java | 45 + .../server/logging/subjects/QueueLogSubject.java | 45 + .../logging/subjects/SubscriptionLogSubject.java | 62 + .../qpid/server/management/AMQManagedObject.java | 106 + .../server/management/DefaultManagedObject.java | 193 + .../management/JMXManagedObjectRegistry.java | 427 + .../qpid/server/management/MBeanIntrospector.java | 394 + .../management/MBeanInvocationHandlerImpl.java | 285 + .../apache/qpid/server/management/Managable.java | 34 + .../qpid/server/management/ManagedObject.java | 59 + .../server/management/ManagedObjectRegistry.java | 51 + .../management/NoopManagedObjectRegistry.java | 60 + .../org/apache/qpid/server/message/AMQMessage.java | 329 + .../qpid/server/message/AMQMessageHeader.java | 51 + .../qpid/server/message/AMQMessageReference.java | 44 + .../server/message/ContentHeaderBodyAdapter.java | 114 + .../qpid/server/message/EnqueableMessage.java | 27 + .../apache/qpid/server/message/InboundMessage.java | 37 + .../qpid/server/message/MessageContentSource.java | 31 + .../qpid/server/message/MessageMetaData.java | 309 + .../qpid/server/message/MessageMetaData_0_10.java | 242 + .../qpid/server/message/MessageReference.java | 57 + .../qpid/server/message/MessageTransferHeader.java | 126 + .../server/message/MessageTransferMessage.java | 146 + .../apache/qpid/server/message/ServerMessage.java | 47 + .../server/message/TransferMessageReference.java | 39 + .../server/output/HeaderPropertiesConverter.java | 124 + .../server/output/ProtocolOutputConverter.java | 60 + .../output/ProtocolOutputConverterRegistry.java | 61 + .../amqp0_8/ProtocolOutputConverterImpl.java | 273 + .../amqp0_9/ProtocolOutputConverterImpl.java | 383 + .../amqp0_9_1/ProtocolOutputConverterImpl.java | 383 + .../org/apache/qpid/server/plugins/Activator.java | 44 + .../apache/qpid/server/plugins/PluginManager.java | 176 + .../protocol/AMQNoMethodHandlerException.java | 46 + .../qpid/server/protocol/AMQProtocolEngine.java | 1070 + .../server/protocol/AMQProtocolEngineFactory.java | 29 + .../qpid/server/protocol/AMQProtocolSession.java | 236 + .../server/protocol/AMQProtocolSessionMBean.java | 344 + .../protocol/MultiVersionProtocolEngine.java | 425 + .../MultiVersionProtocolEngineFactory.java | 75 + .../protocol/ProtocolEngineFactory_0_10.java | 46 + .../qpid/server/protocol/ProtocolEngine_0_10.java | 84 + .../protocol/UnknnownMessageTypeException.java | 46 + .../apache/qpid/server/queue/AMQPriorityQueue.java | 86 + .../org/apache/qpid/server/queue/AMQQueue.java | 275 + .../apache/qpid/server/queue/AMQQueueFactory.java | 225 + .../apache/qpid/server/queue/AMQQueueMBean.java | 619 + .../qpid/server/queue/DefaultQueueRegistry.java | 76 + .../apache/qpid/server/queue/ExchangeBinding.java | 91 + .../apache/qpid/server/queue/ExchangeBindings.java | 82 + .../qpid/server/queue/FailedDequeueException.java | 50 + .../org/apache/qpid/server/queue/Filterable.java | 34 + .../qpid/server/queue/InboundMessageAdapter.java | 71 + .../apache/qpid/server/queue/IncomingMessage.java | 300 + .../qpid/server/queue/MessageCleanupException.java | 52 + .../qpid/server/queue/NotificationCheck.java | 132 + .../qpid/server/queue/PriorityQueueList.java | 162 + .../org/apache/qpid/server/queue/QueueContext.java | 49 + .../org/apache/qpid/server/queue/QueueEntry.java | 209 + .../apache/qpid/server/queue/QueueEntryImpl.java | 542 + .../qpid/server/queue/QueueEntryIterator.java | 30 + .../apache/qpid/server/queue/QueueEntryList.java | 36 + .../qpid/server/queue/QueueEntryListFactory.java | 26 + .../server/queue/QueueNotificationListener.java | 27 + .../apache/qpid/server/queue/QueueRegistry.java | 44 + .../apache/qpid/server/queue/SimpleAMQQueue.java | 1927 ++ .../qpid/server/queue/SimpleQueueEntryList.java | 237 + .../apache/qpid/server/queue/SubFlushRunner.java | 68 + .../qpid/server/registry/ApplicationRegistry.java | 320 + .../ConfigurationFileApplicationRegistry.java | 121 + .../qpid/server/registry/IApplicationRegistry.java | 84 + .../qpid/server/security/PrincipalHolder.java | 29 + .../qpid/server/security/access/ACLManager.java | 323 + .../qpid/server/security/access/ACLPlugin.java | 70 + .../server/security/access/ACLPluginFactory.java | 33 + .../qpid/server/security/access/AccessResult.java | 65 + .../qpid/server/security/access/AccessRights.java | 63 + .../qpid/server/security/access/Accessable.java | 27 + .../security/access/AuthorizationManager.java | 6 + .../qpid/server/security/access/Permission.java | 38 + .../security/access/PrincipalPermissions.java | 673 + .../server/security/access/VirtualHostAccess.java | 68 + .../access/management/AMQUserManagementMBean.java | 528 + .../security/access/plugins/AbstractACLPlugin.java | 99 + .../server/security/access/plugins/AllowAll.java | 54 + .../security/access/plugins/BasicACLPlugin.java | 110 + .../server/security/access/plugins/DenyAll.java | 75 + .../access/plugins/LegacyAccessPlugin.java | 71 + .../server/security/access/plugins/SimpleXML.java | 483 + .../access/plugins/network/FirewallPlugin.java | 256 + .../server/security/auth/AuthenticationResult.java | 63 + .../Base64MD5PasswordFilePrincipalDatabase.java | 582 + .../ConfigurationFilePrincipalDatabaseManager.java | 225 + .../server/security/auth/database/HashedUser.java | 169 + .../PlainPasswordFilePrincipalDatabase.java | 526 + .../server/security/auth/database/PlainUser.java | 106 + .../security/auth/database/PrincipalDatabase.java | 105 + .../auth/database/PrincipalDatabaseManager.java | 35 + .../auth/database/PropertiesPrincipalDatabase.java | 169 + .../PropertiesPrincipalDatabaseManager.java | 49 + .../auth/manager/AuthenticationManager.java | 38 + .../PrincipalDatabaseAuthenticationManager.java | 237 + .../auth/rmi/RMIPasswordAuthenticator.java | 119 + .../sasl/AuthenticationProviderInitialiser.java | 76 + .../server/security/auth/sasl/JCAProvider.java | 46 + .../auth/sasl/UsernamePasswordInitialiser.java | 123 + .../security/auth/sasl/UsernamePrincipal.java | 44 + .../auth/sasl/amqplain/AmqPlainInitialiser.java | 38 + .../auth/sasl/amqplain/AmqPlainSaslServer.java | 132 + .../sasl/amqplain/AmqPlainSaslServerFactory.java | 60 + .../sasl/crammd5/CRAMMD5HashedInitialiser.java | 50 + .../auth/sasl/crammd5/CRAMMD5HashedSaslServer.java | 105 + .../sasl/crammd5/CRAMMD5HashedServerFactory.java | 61 + .../auth/sasl/crammd5/CRAMMD5HexInitialiser.java | 144 + .../auth/sasl/crammd5/CRAMMD5HexSaslServer.java | 105 + .../auth/sasl/crammd5/CRAMMD5HexServerFactory.java | 61 + .../auth/sasl/crammd5/CRAMMD5Initialiser.java | 71 + .../security/auth/sasl/plain/PlainInitialiser.java | 38 + .../security/auth/sasl/plain/PlainSaslServer.java | 151 + .../auth/sasl/plain/PlainSaslServerFactory.java | 60 + .../org/apache/qpid/server/state/AMQState.java | 36 + .../apache/qpid/server/state/AMQStateManager.java | 263 + .../state/IllegalStateTransitionException.java | 52 + .../server/state/StateAwareMethodListener.java | 35 + .../apache/qpid/server/state/StateListener.java | 30 + .../qpid/server/store/AbstractMessageStore.java | 44 + .../server/store/ConfigurationRecoveryHandler.java | 57 + .../qpid/server/store/DerbyMessageStore.java | 1475 + .../server/store/DurableConfigurationStore.java | 116 + .../qpid/server/store/MemoryMessageStore.java | 198 + .../qpid/server/store/MessageMetaDataType.java | 41 + .../org/apache/qpid/server/store/MessageStore.java | 80 + .../server/store/MessageStoreClosedException.java | 36 + .../server/store/MessageStoreRecoveryHandler.java | 33 + .../qpid/server/store/StorableMessageMetaData.java | 36 + .../org/apache/qpid/server/store/StoreContext.java | 73 + .../qpid/server/store/StoredMemoryMessage.java | 80 + .../apache/qpid/server/store/StoredMessage.java | 38 + .../apache/qpid/server/store/TransactionLog.java | 92 + .../store/TransactionLogRecoveryHandler.java | 33 + .../qpid/server/store/TransactionLogResource.java | 26 + .../server/subscription/ClientDeliveryMethod.java | 29 + .../ExplicitAcceptDispositionChangeListener.java | 93 + .../ImplicitAcceptDispositionChangeListener.java | 86 + .../MessageAcceptCompletionListener.java | 57 + .../server/subscription/RecordDeliveryMethod.java | 28 + .../qpid/server/subscription/Subscription.java | 108 + .../server/subscription/SubscriptionFactory.java | 59 + .../subscription/SubscriptionFactoryImpl.java | 103 + .../qpid/server/subscription/SubscriptionImpl.java | 692 + .../qpid/server/subscription/SubscriptionList.java | 247 + .../server/subscription/Subscription_0_10.java | 663 + .../apache/qpid/server/transport/QpidAcceptor.java | 44 + .../qpid/server/transport/ServerConnection.java | 64 + .../server/transport/ServerConnectionDelegate.java | 120 + .../qpid/server/transport/ServerSession.java | 398 + .../server/transport/ServerSessionDelegate.java | 1198 + .../qpid/server/transport/ThreadPoolFilter.java | 705 + .../qpid/server/txn/AutoCommitTransaction.java | 170 + .../apache/qpid/server/txn/LocalTransaction.java | 243 + .../apache/qpid/server/txn/ServerTransaction.java | 60 + .../apache/qpid/server/util/CircularBuffer.java | 131 + .../org/apache/qpid/server/util/LoggingProxy.java | 105 + .../server/virtualhost/ManagedVirtualHost.java | 45 + .../qpid/server/virtualhost/VirtualHost.java | 62 + .../VirtualHostConfigRecoveryHandler.java | 341 + .../qpid/server/virtualhost/VirtualHostImpl.java | 594 + .../server/virtualhost/VirtualHostRegistry.java | 83 + .../qpid/tools/messagestore/MessageStoreTool.java | 652 + .../messagestore/commands/AbstractCommand.java | 66 + .../qpid/tools/messagestore/commands/Clear.java | 85 + .../qpid/tools/messagestore/commands/Command.java | 36 + .../qpid/tools/messagestore/commands/Copy.java | 59 + .../qpid/tools/messagestore/commands/Dump.java | 305 + .../qpid/tools/messagestore/commands/Help.java | 98 + .../qpid/tools/messagestore/commands/List.java | 314 + .../qpid/tools/messagestore/commands/Load.java | 94 + .../qpid/tools/messagestore/commands/Move.java | 202 + .../qpid/tools/messagestore/commands/Purge.java | 67 + .../qpid/tools/messagestore/commands/Quit.java | 54 + .../qpid/tools/messagestore/commands/Select.java | 233 + .../qpid/tools/messagestore/commands/Show.java | 516 + .../org/apache/qpid/tools/security/Passwd.java | 81 + .../org/apache/qpid/tools/utils/CommandParser.java | 51 + .../java/org/apache/qpid/tools/utils/Console.java | 90 + .../qpid/tools/utils/SimpleCommandParser.java | 121 + .../org/apache/qpid/tools/utils/SimpleConsole.java | 363 + .../log4j/xml/QpidLog4JConfiguratorTest.java | 396 + .../qpid/server/AMQBrokerManagerMBeanTest.java | 99 + .../qpid/server/ExtractResendAndRequeueTest.java | 255 + .../apache/qpid/server/RunBrokerWithCommand.java | 132 + .../org/apache/qpid/server/SelectorParserTest.java | 128 + .../apache/qpid/server/ack/AcknowledgeTest.java | 120 + .../configuration/QueueConfigurationTest.java | 136 + .../configuration/ServerConfigurationTest.java | 1049 + .../server/configuration/TestPropertyUtils.java | 50 + .../VirtualHostConfigurationTest.java | 133 + .../exchange/AbstractHeadersExchangeTestBase.java | 575 + .../qpid/server/exchange/ExchangeMBeanTest.java | 149 + .../qpid/server/exchange/HeadersBindingTest.java | 278 + .../qpid/server/exchange/HeadersExchangeTest.java | 114 + .../qpid/server/exchange/TopicExchangeTest.java | 446 + .../apache/qpid/server/logging/LogMessageTest.java | 71 + .../server/logging/RootMessageLoggerImplTest.java | 86 + .../logging/actors/AMQPChannelActorTest.java | 269 + .../logging/actors/AMQPConnectionActorTest.java | 116 + .../server/logging/actors/BaseActorTestCase.java | 74 + .../actors/BaseConnectionActorTestCase.java | 50 + .../server/logging/actors/CurrentActorTest.java | 294 + .../server/logging/actors/ManagementActorTest.java | 118 + .../qpid/server/logging/actors/QueueActorTest.java | 99 + .../logging/actors/SubscriptionActorTest.java | 110 + .../qpid/server/logging/actors/TestLogActor.java | 37 + .../management/LoggingManagementMBeanTest.java | 425 + .../logging/messages/AbstractTestMessages.java | 127 + .../logging/messages/BindingMessagesTest.java | 64 + .../logging/messages/BrokerMessagesTest.java | 116 + .../logging/messages/ChannelMessagesTest.java | 64 + .../logging/messages/ConnectionMessagesTest.java | 90 + .../logging/messages/ExchangeMessagesTest.java | 80 + .../messages/ManagementConsoleMessagesTest.java | 98 + .../logging/messages/MessageStoreMessagesTest.java | 126 + .../server/logging/messages/QueueMessagesTest.java | 239 + .../logging/messages/SubscriptionMessagesTest.java | 86 + .../logging/messages/VirtualHostMessagesTest.java | 51 + .../logging/rawloggers/Log4jMessageLoggerTest.java | 238 + .../logging/rawloggers/UnitTestMessageLogger.java | 60 + .../rawloggers/UnitTestMessageLoggerTest.java | 102 + .../logging/subjects/AbstractTestLogSubject.java | 299 + .../logging/subjects/BindingLogSubjectTest.java | 71 + .../logging/subjects/ChannelLogSubjectTest.java | 58 + .../logging/subjects/ConnectionLogSubjectTest.java | 46 + .../logging/subjects/ExchangeLogSubjectTest.java | 58 + .../subjects/MessageStoreLogSubjectTest.java | 62 + .../logging/subjects/QueueLogSubjectTest.java | 62 + .../subjects/SubscriptionLogSubjectTest.java | 105 + .../server/logging/subjects/TestBlankSubject.java | 33 + .../qpid/server/plugins/MockPluginManager.java | 51 + .../org/apache/qpid/server/plugins/PluginTest.java | 53 + .../protocol/AMQProtocolSessionMBeanTest.java | 150 + .../protocol/InternalTestProtocolSession.java | 199 + .../qpid/server/protocol/MaxChannelsTest.java | 86 + .../qpid/server/queue/AMQPriorityQueueTest.java | 108 + .../qpid/server/queue/AMQQueueAlertTest.java | 372 + .../qpid/server/queue/AMQQueueFactoryTest.java | 71 + .../qpid/server/queue/AMQQueueMBeanTest.java | 474 + .../java/org/apache/qpid/server/queue/AckTest.java | 432 + .../apache/qpid/server/queue/MockAMQMessage.java | 43 + .../org/apache/qpid/server/queue/MockAMQQueue.java | 443 + .../qpid/server/queue/MockMessagePublishInfo.java | 52 + .../apache/qpid/server/queue/MockQueueEntry.java | 228 + .../qpid/server/queue/MockStoredMessage.java | 92 + .../qpid/server/queue/SimpleAMQQueueTest.java | 495 + .../server/queue/SimpleAMQQueueThreadPoolTest.java | 58 + .../registry/ApplicationRegistryShutdownTest.java | 131 + .../auth/sasl/CRAMMD5HexInitialiserTest.java | 143 + .../server/security/access/ACLManagerTest.java | 112 + .../server/security/access/ExchangeDenier.java | 49 + .../security/access/PrincipalPermissionsTest.java | 258 + .../qpid/server/security/access/QueueDenier.java | 67 + .../management/AMQUserManagementMBeanTest.java | 276 + .../access/plugins/network/FirewallPluginTest.java | 303 + ...Base64MD5PasswordFilePrincipalDatabaseTest.java | 466 + .../security/auth/database/HashedUserTest.java | 95 + .../PlainPasswordFilePrincipalDatabaseTest.java | 416 + .../security/auth/database/PlainUserTest.java | 78 + .../auth/rmi/RMIPasswordAuthenticatorTest.java | 267 + .../security/auth/sasl/SaslServerTestCase.java | 66 + .../security/auth/sasl/TestPrincipalDatabase.java | 91 + .../auth/sasl/amqplain/AMQPlainSaslServerTest.java | 43 + .../auth/sasl/plain/PlainSaslServerTest.java | 39 + .../server/store/MessageStoreShutdownTest.java | 81 + .../apache/qpid/server/store/MessageStoreTest.java | 635 + .../qpid/server/store/SkeletonMessageStore.java | 220 + .../qpid/server/store/TestMemoryMessageStore.java | 98 + .../qpid/server/store/TestReferenceCounting.java | 167 + .../server/store/TestableMemoryMessageStore.java | 159 + .../qpid/server/subscription/MockSubscription.java | 238 + .../subscription/QueueBrowserUsesNoAckTest.java | 77 + .../qpid/server/util/InternalBrokerBaseCase.java | 204 + .../apache/qpid/server/util/LoggingProxyTest.java | 88 + .../qpid/server/util/NullApplicationRegistry.java | 120 + .../qpid/server/util/TestApplicationRegistry.java | 159 + .../java/org/apache/qpid/util/MockChannel.java | 40 + .../qpid/server/logging/GenerateLogMessages.java | 470 + .../qpid/server/logging/messages/LogMessages.vm | 187 + trunk/qpid/java/build.deps | 176 + trunk/qpid/java/build.xml | 245 + trunk/qpid/java/client/build.xml | 52 + trunk/qpid/java/client/example/bin/README.txt | 11 + .../qpid/java/client/example/bin/set_classpath.bat | 50 + .../qpid/java/client/example/bin/set_classpath.sh | 83 + trunk/qpid/java/client/example/bin/verify_all | 64 + trunk/qpid/java/client/example/build.xml | 27 + trunk/qpid/java/client/example/source-jar.xml | 35 + .../java/client/example/src/main/java/README.txt | 18 + .../java/client/example/src/main/java/log4j.xml | 49 + .../example/amqpexample/direct/DeclareQueue.java | 55 + .../example/amqpexample/direct/DirectProducer.java | 67 + .../qpid/example/amqpexample/direct/Listener.java | 105 + .../example/amqpexample/fanout/DeclareQueue.java | 55 + .../amqpexample/fanout/FannoutProducer.java | 66 + .../qpid/example/amqpexample/fanout/Listener.java | 105 + .../example/amqpexample/headers/DeclareQueue.java | 74 + .../qpid/example/amqpexample/headers/Listener.java | 107 + .../qpid/example/amqpexample/headers/Producer.java | 88 + .../example/amqpexample/lvq/DeclareLVQueue.java | 64 + .../qpid/example/amqpexample/lvq/Listener.java | 115 + .../qpid/example/amqpexample/lvq/Producer.java | 69 + .../example/amqpexample/pubsub/TopicListener.java | 114 + .../example/amqpexample/pubsub/TopicPublisher.java | 80 + .../qpid/example/jmsexample/direct/Consumer.java | 152 + .../qpid/example/jmsexample/direct/Listener.java | 208 + .../qpid/example/jmsexample/direct/Producer.java | 138 + .../example/jmsexample/direct/direct.properties | 27 + .../apache/qpid/example/jmsexample/direct/verify | 34 + .../qpid/example/jmsexample/direct/verify.in | 35 + .../qpid/example/jmsexample/direct/verify_cpp_java | 10 + .../example/jmsexample/direct/verify_cpp_java.in | 20 + .../qpid/example/jmsexample/direct/verify_java_cpp | 10 + .../example/jmsexample/direct/verify_java_cpp.in | 30 + .../example/jmsexample/direct/verify_java_python | 9 + .../jmsexample/direct/verify_java_python.in | 29 + .../example/jmsexample/direct/verify_python_java | 10 + .../jmsexample/direct/verify_python_java.in | 20 + .../qpid/example/jmsexample/fanout/Consumer.java | 165 + .../qpid/example/jmsexample/fanout/Listener.java | 201 + .../qpid/example/jmsexample/fanout/Producer.java | 113 + .../example/jmsexample/fanout/fanout.properties | 33 + .../apache/qpid/example/jmsexample/fanout/verify | 36 + .../qpid/example/jmsexample/fanout/verify.in | 70 + .../qpid/example/jmsexample/fanout/verify_cpp_java | 13 + .../example/jmsexample/fanout/verify_cpp_java.in | 55 + .../qpid/example/jmsexample/fanout/verify_java_cpp | 13 + .../example/jmsexample/fanout/verify_java_cpp.in | 58 + .../example/jmsexample/fanout/verify_java_python | 13 + .../jmsexample/fanout/verify_java_python.in | 55 + .../example/jmsexample/fanout/verify_python_java | 13 + .../jmsexample/fanout/verify_python_java.in | 55 + .../qpid/example/jmsexample/pubsub/Listener.java | 214 + .../qpid/example/jmsexample/pubsub/Publisher.java | 133 + .../example/jmsexample/pubsub/pubsub.properties | 36 + .../apache/qpid/example/jmsexample/pubsub/verify | 33 + .../qpid/example/jmsexample/pubsub/verify.in | 95 + .../qpid/example/jmsexample/pubsub/verify_cpp_java | 10 + .../example/jmsexample/pubsub/verify_cpp_java.in | 55 + .../qpid/example/jmsexample/pubsub/verify_java_cpp | 10 + .../example/jmsexample/pubsub/verify_java_cpp.in | 99 + .../example/jmsexample/pubsub/verify_java_python | 10 + .../jmsexample/pubsub/verify_java_python.in | 95 + .../example/jmsexample/pubsub/verify_python_java | 10 + .../jmsexample/pubsub/verify_python_java.in | 55 + .../example/jmsexample/requestResponse/Client.java | 153 + .../example/jmsexample/requestResponse/Server.java | 163 + .../requestResponse/requestResponse.properties | 27 + .../qpid/example/jmsexample/requestResponse/verify | 34 + .../example/jmsexample/requestResponse/verify.in | 38 + .../jmsexample/requestResponse/verify_cpp_java | 12 + .../jmsexample/requestResponse/verify_cpp_java.in | 22 + .../jmsexample/requestResponse/verify_java_cpp | 12 + .../jmsexample/requestResponse/verify_java_cpp.in | 35 + .../jmsexample/requestResponse/verify_java_python | 11 + .../requestResponse/verify_java_python.in | 34 + .../jmsexample/requestResponse/verify_python_java | 11 + .../requestResponse/verify_python_java.in | 18 + .../jmsexample/transacted/QueueToTopic.java | 259 + .../jmsexample/transacted/transacted.properties | 31 + .../example/publisher/FileMessageDispatcher.java | 163 + .../qpid/example/publisher/FileMessageFactory.java | 138 + .../example/publisher/MessageFactoryException.java | 29 + .../publisher/MonitorMessageDispatcher.java | 141 + .../qpid/example/publisher/MonitorPublisher.java | 105 + .../example/publisher/MultiMessageDispatcher.java | 141 + .../apache/qpid/example/publisher/Publisher.java | 208 + .../qpid/example/publisher/TopicPublisher.java | 59 + .../publisher/UndeliveredMessageException.java | 32 + .../org/apache/qpid/example/pubsub/Client.java | 72 + .../qpid/example/pubsub/ConnectionSetup.java | 123 + .../org/apache/qpid/example/pubsub/Publisher.java | 81 + .../org/apache/qpid/example/pubsub/Subscriber.java | 98 + .../qpid/example/shared/ConnectionException.java | 29 + .../qpid/example/shared/ContextException.java | 29 + .../org/apache/qpid/example/shared/FileUtils.java | 168 + .../qpid/example/shared/InitialContextHelper.java | 81 + .../org/apache/qpid/example/shared/Statics.java | 57 + .../apache/qpid/example/shared/example.properties | 39 + .../apache/qpid/example/simple/reqresp/Client.java | 263 + .../apache/qpid/example/simple/reqresp/Server.java | 236 + .../example/subscriber/MonitoredSubscriber.java | 139 + .../subscriber/MonitoredSubscriptionWrapper.java | 47 + .../apache/qpid/example/subscriber/Subscriber.java | 182 + .../example/subscriber/SubscriptionWrapper.java | 46 + .../transport/ExistingSocketConnectorDemo.java | 171 + .../java/client/example/src/main/java/runSample.sh | 72 + .../java/client/src/main/grammar/SelectorParser.jj | 609 + trunk/qpid/java/client/src/main/java/client.bnd | 7 + trunk/qpid/java/client/src/main/java/client.log4j | 33 + trunk/qpid/java/client/src/main/java/log4j.xml | 36 + .../socket/nio/ExistingSocketConnector.java | 478 + .../org/apache/qpid/client/AMQAnyDestination.java | 56 + .../qpid/client/AMQAuthenticationException.java | 42 + .../org/apache/qpid/client/AMQBrokerDetails.java | 390 + .../java/org/apache/qpid/client/AMQConnection.java | 1601 ++ .../apache/qpid/client/AMQConnectionDelegate.java | 66 + .../qpid/client/AMQConnectionDelegate_0_10.java | 309 + .../qpid/client/AMQConnectionDelegate_0_9.java | 40 + .../qpid/client/AMQConnectionDelegate_8_0.java | 318 + .../qpid/client/AMQConnectionDelegate_9_1.java | 39 + .../apache/qpid/client/AMQConnectionFactory.java | 563 + .../org/apache/qpid/client/AMQConnectionURL.java | 294 + .../org/apache/qpid/client/AMQDestination.java | 505 + .../org/apache/qpid/client/AMQHeadersExchange.java | 54 + .../qpid/client/AMQNoConsumersException.java | 40 + .../apache/qpid/client/AMQNoRouteException.java | 40 + .../main/java/org/apache/qpid/client/AMQQueue.java | 165 + .../org/apache/qpid/client/AMQQueueBrowser.java | 143 + .../apache/qpid/client/AMQQueueSessionAdaptor.java | 204 + .../java/org/apache/qpid/client/AMQSession.java | 3141 ++ .../org/apache/qpid/client/AMQSessionAdapter.java | 26 + .../qpid/client/AMQSessionDirtyException.java | 42 + .../org/apache/qpid/client/AMQSession_0_10.java | 931 + .../org/apache/qpid/client/AMQSession_0_8.java | 588 + .../org/apache/qpid/client/AMQTemporaryQueue.java | 69 + .../org/apache/qpid/client/AMQTemporaryTopic.java | 72 + .../main/java/org/apache/qpid/client/AMQTopic.java | 151 + .../apache/qpid/client/AMQTopicSessionAdaptor.java | 226 + .../qpid/client/AMQUndefinedDestination.java | 40 + .../apache/qpid/client/BasicMessageConsumer.java | 1075 + .../qpid/client/BasicMessageConsumer_0_10.java | 460 + .../qpid/client/BasicMessageConsumer_0_8.java | 91 + .../apache/qpid/client/BasicMessageProducer.java | 590 + .../qpid/client/BasicMessageProducer_0_10.java | 194 + .../qpid/client/BasicMessageProducer_0_8.java | 227 + .../java/org/apache/qpid/client/Closeable.java | 101 + .../qpid/client/ConnectionTuneParameters.java | 72 + .../org/apache/qpid/client/CustomJMSXProperty.java | 66 + .../org/apache/qpid/client/DispatcherCallback.java | 36 + .../org/apache/qpid/client/JMSAMQException.java | 65 + .../qpid/client/JmsNotImplementedException.java | 31 + .../apache/qpid/client/MessageConsumerPair.java | 43 + .../apache/qpid/client/QpidConnectionMetaData.java | 97 + .../apache/qpid/client/QueueReceiverAdaptor.java | 115 + .../org/apache/qpid/client/QueueSenderAdapter.java | 228 + .../org/apache/qpid/client/SSLConfiguration.java | 61 + .../apache/qpid/client/TemporaryDestination.java | 38 + .../apache/qpid/client/TopicPublisherAdapter.java | 205 + .../apache/qpid/client/TopicSubscriberAdaptor.java | 132 + .../org/apache/qpid/client/XAConnectionImpl.java | 78 + .../org/apache/qpid/client/XAResourceImpl.java | 529 + .../java/org/apache/qpid/client/XASessionImpl.java | 159 + .../client/configuration/ClientProperties.java | 105 + .../qpid/client/failover/FailoverException.java | 49 + .../qpid/client/failover/FailoverHandler.java | 268 + .../qpid/client/failover/FailoverNoopSupport.java | 75 + .../failover/FailoverProtectedOperation.java | 49 + .../qpid/client/failover/FailoverRetrySupport.java | 104 + .../apache/qpid/client/failover/FailoverState.java | 64 + .../qpid/client/failover/FailoverSupport.java | 47 + .../handler/AccessRequestOkMethodHandler.java | 50 + .../client/handler/BasicCancelOkMethodHandler.java | 55 + .../client/handler/BasicDeliverMethodHandler.java | 54 + .../client/handler/BasicReturnMethodHandler.java | 58 + .../client/handler/ChannelCloseMethodHandler.java | 119 + .../handler/ChannelCloseOkMethodHandler.java | 49 + .../client/handler/ChannelFlowMethodHandler.java | 51 + .../client/handler/ChannelFlowOkMethodHandler.java | 52 + .../client/handler/ClientMethodDispatcherImpl.java | 541 + .../handler/ClientMethodDispatcherImpl_0_9.java | 153 + .../handler/ClientMethodDispatcherImpl_0_91.java | 158 + .../handler/ClientMethodDispatcherImpl_8_0.java | 85 + .../handler/ConnectionCloseMethodHandler.java | 106 + .../handler/ConnectionOpenOkMethodHandler.java | 48 + .../handler/ConnectionRedirectMethodHandler.java | 71 + .../handler/ConnectionSecureMethodHandler.java | 70 + .../handler/ConnectionStartMethodHandler.java | 240 + .../handler/ConnectionTuneMethodHandler.java | 82 + .../handler/ExchangeBoundOkMethodHandler.java | 57 + .../client/handler/QueueDeleteOkMethodHandler.java | 57 + .../qpid/client/message/AMQMessageDelegate.java | 137 + .../client/message/AMQMessageDelegateFactory.java | 54 + .../client/message/AMQMessageDelegate_0_10.java | 915 + .../client/message/AMQMessageDelegate_0_8.java | 577 + .../client/message/AbstractAMQMessageDelegate.java | 151 + .../qpid/client/message/AbstractBytesMessage.java | 123 + .../client/message/AbstractBytesTypedMessage.java | 802 + .../qpid/client/message/AbstractJMSMessage.java | 535 + .../client/message/AbstractJMSMessageFactory.java | 173 + .../qpid/client/message/CloseConsumerMessage.java | 43 + .../qpid/client/message/FiledTableSupport.java | 56 + .../qpid/client/message/JMSBytesMessage.java | 384 + .../client/message/JMSBytesMessageFactory.java | 44 + .../qpid/client/message/JMSHeaderAdapter.java | 552 + .../apache/qpid/client/message/JMSMapMessage.java | 513 + .../qpid/client/message/JMSMapMessageFactory.java | 42 + .../qpid/client/message/JMSObjectMessage.java | 173 + .../client/message/JMSObjectMessageFactory.java | 41 + .../qpid/client/message/JMSStreamMessage.java | 206 + .../client/message/JMSStreamMessageFactory.java | 40 + .../apache/qpid/client/message/JMSTextMessage.java | 186 + .../qpid/client/message/JMSTextMessageFactory.java | 42 + .../qpid/client/message/MessageConverter.java | 195 + .../apache/qpid/client/message/MessageFactory.java | 49 + .../client/message/MessageFactoryRegistry.java | 172 + .../apache/qpid/client/message/ReturnMessage.java | 47 + .../qpid/client/message/UnprocessedMessage.java | 58 + .../client/message/UnprocessedMessage_0_10.java | 53 + .../client/message/UnprocessedMessage_0_8.java | 163 + .../qpid/client/protocol/AMQProtocolHandler.java | 855 + .../qpid/client/protocol/AMQProtocolSession.java | 471 + .../protocol/BlockingMethodFrameListener.java | 136 + .../qpid/client/protocol/HeartbeatConfig.java | 61 + .../qpid/client/protocol/HeartbeatDiagnostics.java | 121 + .../protocol/ProtocolBufferMonitorFilter.java | 115 + .../qpid/client/security/AMQCallbackHandler.java | 30 + .../client/security/CallbackHandlerRegistry.java | 231 + .../security/CallbackHandlerRegistry.properties | 22 + .../qpid/client/security/DynamicSaslRegistrar.java | 210 + .../security/DynamicSaslRegistrar.properties | 20 + .../apache/qpid/client/security/JCAProvider.java | 72 + .../UsernameHashedPasswordCallbackHandler.java | 102 + .../security/UsernamePasswordCallbackHandler.java | 60 + .../security/amqplain/AmqPlainSaslClient.java | 105 + .../amqplain/AmqPlainSaslClientFactory.java | 63 + .../CRAMMD5HashedSaslClientFactory.java | 72 + .../state/AMQMethodNotImplementedException.java | 32 + .../org/apache/qpid/client/state/AMQState.java | 60 + .../qpid/client/state/AMQStateChangedEvent.java | 48 + .../apache/qpid/client/state/AMQStateListener.java | 26 + .../apache/qpid/client/state/AMQStateManager.java | 221 + .../client/state/StateAwareMethodListener.java | 38 + .../org/apache/qpid/client/state/StateWaiter.java | 128 + .../listener/SpecificMethodFrameListener.java | 41 + .../AMQNoTransportForProtocolException.java | 59 + .../transport/AMQTransportConnectionException.java | 43 + .../client/transport/ITransportConnection.java | 32 + .../transport/SocketTransportConnection.java | 90 + .../qpid/client/transport/TransportConnection.java | 353 + .../transport/VmPipeTransportConnection.java | 63 + .../java/org/apache/qpid/client/url/URLParser.java | 253 + .../org/apache/qpid/client/url/URLParser_0_10.java | 423 + .../apache/qpid/client/util/BlockingWaiter.java | 348 + .../client/util/FlowControllingBlockingQueue.java | 135 + .../vmbroker/AMQVMBrokerCreationException.java | 60 + .../apache/qpid/filter/ArithmeticExpression.java | 268 + .../org/apache/qpid/filter/BinaryExpression.java | 103 + .../org/apache/qpid/filter/BooleanExpression.java | 33 + .../apache/qpid/filter/ComparisonExpression.java | 589 + .../org/apache/qpid/filter/ConstantExpression.java | 204 + .../java/org/apache/qpid/filter/Expression.java | 34 + .../org/apache/qpid/filter/JMSSelectorFilter.java | 70 + .../org/apache/qpid/filter/LogicExpression.java | 108 + .../java/org/apache/qpid/filter/MessageFilter.java | 27 + .../org/apache/qpid/filter/PropertyExpression.java | 297 + .../org/apache/qpid/filter/UnaryExpression.java | 321 + .../java/org/apache/qpid/jms/BrokerDetails.java | 105 + .../qpid/jms/ChannelLimitReachedException.java | 46 + .../main/java/org/apache/qpid/jms/Connection.java | 69 + .../org/apache/qpid/jms/ConnectionListener.java | 58 + .../java/org/apache/qpid/jms/ConnectionURL.java | 96 + .../java/org/apache/qpid/jms/FailoverPolicy.java | 325 + .../src/main/java/org/apache/qpid/jms/Message.java | 30 + .../java/org/apache/qpid/jms/MessageConsumer.java | 27 + .../java/org/apache/qpid/jms/MessageProducer.java | 57 + .../src/main/java/org/apache/qpid/jms/Session.java | 101 + .../java/org/apache/qpid/jms/TopicSubscriber.java | 32 + .../qpid/jms/failover/FailoverExchangeMethod.java | 317 + .../apache/qpid/jms/failover/FailoverMethod.java | 79 + .../jms/failover/FailoverRoundRobinServers.java | 253 + .../qpid/jms/failover/FailoverSingleServer.java | 166 + .../org/apache/qpid/jms/failover/NoFailover.java | 62 + .../java/org/apache/qpid/jndi/Example.properties | 40 + .../java/org/apache/qpid/jndi/NameParserImpl.java | 37 + .../jndi/PropertiesFileInitialContextFactory.java | 372 + .../java/org/apache/qpid/jndi/ReadOnlyContext.java | 527 + .../org/apache/qpid/naming/ReadOnlyContext.java | 509 + .../java/org/apache/qpid/naming/jndi.properties | 40 + .../apache/qpid/nclient/MessagePartListener.java | 46 + .../qpid/nclient/util/ByteBufferMessage.java | 190 + .../apache/qpid/nclient/util/MessageListener.java | 34 + .../nclient/util/MessagePartListenerAdapter.java | 88 + .../java/org/apache/qpid/njms/ExceptionHelper.java | 60 + .../IBMPerfTest/JNDIBindConnectionFactory.java | 185 + .../org/apache/qpid/IBMPerfTest/JNDIBindQueue.java | 213 + .../org/apache/qpid/IBMPerfTest/JNDIBindTopic.java | 212 + .../java/org/apache/qpid/IBMPerfTest/README.txt | 11 + .../java/org/apache/qpid/cluster/Client.java | 129 + .../org/apache/qpid/codec/BasicDeliverTest.java | 277 + .../java/org/apache/qpid/codec/Client.java | 133 + .../java/org/apache/qpid/codec/Server.java | 103 + .../config/AMQConnectionFactoryInitialiser.java | 35 + .../org/apache/qpid/config/AbstractConfig.java | 69 + .../qpid/config/ConnectionFactoryInitialiser.java | 29 + .../java/org/apache/qpid/config/Connector.java | 40 + .../org/apache/qpid/config/ConnectorConfig.java | 28 + .../config/JBossConnectionFactoryInitialiser.java | 111 + .../java/org/apache/qpid/flow/ChannelFlowTest.java | 112 + .../qpid/fragmentation/TestLargePublisher.java | 196 + .../qpid/fragmentation/TestLargeSubscriber.java | 167 + .../java/org/apache/qpid/headers/Listener.java | 117 + .../org/apache/qpid/headers/MessageFactory.java | 175 + .../java/org/apache/qpid/headers/Publisher.java | 133 + .../org/apache/qpid/jndi/referenceable/Bind.java | 273 + .../org/apache/qpid/jndi/referenceable/Lookup.java | 196 + .../org/apache/qpid/jndi/referenceable/Unbind.java | 166 + .../java/org/apache/qpid/latency/LatencyTest.java | 153 + .../java/org/apache/qpid/mina/AcceptorTest.java | 102 + .../org/apache/qpid/mina/BlockingAcceptorTest.java | 93 + .../java/org/apache/qpid/mina/WriterTest.java | 271 + .../org/apache/qpid/multiconsumer/AMQTest.java | 269 + .../org/apache/qpid/pubsub1/TestPublisher.java | 176 + .../org/apache/qpid/pubsub1/TestSubscriber.java | 122 + .../client/connection/TestManyConnections.java | 95 + .../PropertiesFileInitialContextFactoryTest.java | 153 + .../apache/qpid/test/unit/jndi/example.properties | 38 + .../java/org/apache/qpid/topic/Config.java | 243 + .../java/org/apache/qpid/topic/Listener.java | 141 + .../java/org/apache/qpid/topic/MessageFactory.java | 155 + .../java/org/apache/qpid/topic/Publisher.java | 175 + .../java/org/apache/qpid/transacted/Config.java | 110 + .../java/org/apache/qpid/transacted/Ping.java | 45 + .../java/org/apache/qpid/transacted/Pong.java | 45 + .../java/org/apache/qpid/transacted/Relay.java | 127 + .../java/org/apache/qpid/transacted/Start.java | 44 + .../org/apache/qpid/weblogic/ServiceProvider.java | 151 + .../qpid/weblogic/ServiceRequestingClient.java | 185 + .../vmpipe/support/VmPipeIdleStatusChecker.java | 125 + .../java/org/apache/qpid/client/AMQQueueTest.java | 42 + .../org/apache/qpid/client/MockAMQConnection.java | 94 + .../client/message/AbstractJMSMessageTest.java | 36 + .../qpid/client/message/TestMessageHelper.java | 46 + .../client/protocol/AMQProtocolHandlerTest.java | 289 + .../apache/qpid/client/protocol/MockIoSession.java | 312 + .../unit/basic/FieldTableKeyEnumeratorTest.java | 96 + .../test/unit/basic/FieldTablePropertyTest.java | 62 + .../client/BrokerDetails/BrokerDetailsTest.java | 99 + .../ChannelCloseMethodHandlerNoCloseOk.java | 97 + .../client/channelclose/NoCloseOKStateManager.java | 65 + .../client/connectionurl/ConnectionURLTest.java | 545 + .../client/destinationurl/DestinationURLTest.java | 197 + .../test/unit/client/message/BytesMessageTest.java | 569 + .../test/unit/client/message/MapMessageTest.java | 383 + .../unit/client/message/StreamMessageTest.java | 623 + .../test/unit/client/message/TextMessageTest.java | 300 + .../qpid/test/unit/jndi/ConnectionFactoryTest.java | 75 + .../qpid/test/unit/jndi/JNDIPropertyFileTest.java | 70 + .../apache/qpid/test/unit/jndi/JNDITest.properties | 28 + .../test/unit/message/MessageConverterTest.java | 140 + .../qpid/test/unit/message/NonQpidMessage.java | 411 + .../qpid/test/unit/message/TestAMQSession.java | 174 + .../org/apache/qpid/test/unit/tests.properties | 45 + trunk/qpid/java/client/test/bin/IBM-JNDI-Setup.bat | 69 + trunk/qpid/java/client/test/bin/IBM-JNDI-Setup.sh | 27 + trunk/qpid/java/client/test/bin/IBM-Publisher.bat | 62 + trunk/qpid/java/client/test/bin/IBM-Publisher.sh | 22 + trunk/qpid/java/client/test/bin/IBM-PutGet.bat | 62 + trunk/qpid/java/client/test/bin/IBM-PutGet.sh | 21 + trunk/qpid/java/client/test/bin/IBM-README.txt | 19 + trunk/qpid/java/client/test/bin/IBM-Receiver.bat | 62 + trunk/qpid/java/client/test/bin/IBM-Receiver.sh | 22 + trunk/qpid/java/client/test/bin/IBM-Sender.bat | 62 + trunk/qpid/java/client/test/bin/IBM-Sender.sh | 22 + trunk/qpid/java/client/test/bin/IBM-Subscriber.bat | 62 + trunk/qpid/java/client/test/bin/IBM-Subscriber.sh | 22 + trunk/qpid/java/client/test/bin/headersListener.sh | 22 + .../java/client/test/bin/headersListenerGroup.sh | 25 + .../qpid/java/client/test/bin/headersPublisher.sh | 22 + trunk/qpid/java/client/test/bin/run_many.sh | 30 + .../java/client/test/bin/serviceProvidingClient.sh | 24 + .../client/test/bin/serviceRequestingClient.sh | 27 + trunk/qpid/java/client/test/bin/testService.sh | 22 + trunk/qpid/java/client/test/bin/topicListener.sh | 23 + trunk/qpid/java/client/test/bin/topicPublisher.sh | 22 + .../qpid/java/client/test/etc/ApacheDS.properties | 24 + trunk/qpid/java/client/test/example_build.xml | 104 + trunk/qpid/java/common.xml | 284 + trunk/qpid/java/common/Composite.tpl | 342 + trunk/qpid/java/common/Constant.tpl | 35 + trunk/qpid/java/common/Enum.tpl | 57 + trunk/qpid/java/common/Invoker.tpl | 73 + trunk/qpid/java/common/MethodDelegate.tpl | 37 + trunk/qpid/java/common/Option.tpl | 42 + trunk/qpid/java/common/StructFactory.tpl | 60 + trunk/qpid/java/common/Type.tpl | 84 + trunk/qpid/java/common/bin/qpid-run | 265 + trunk/qpid/java/common/build.xml | 83 + trunk/qpid/java/common/codegen | 89 + trunk/qpid/java/common/etc/qpid-run.conf | 25 + trunk/qpid/java/common/etc/qpid-run.conf.dev | 26 + trunk/qpid/java/common/genutil.py | 256 + trunk/qpid/java/common/protocol-version.xml | 70 + trunk/qpid/java/common/readme.txt | 4 + trunk/qpid/java/common/src/main/java/common.bnd | 6 + .../java/common/src/main/java/log4j.properties | 31 + .../mina/common/FixedSizeByteBufferAllocator.java | 467 + .../mina/common/support/DefaultIoFuture.java | 227 + .../common/support/IoServiceListenerSupport.java | 351 + .../mina/filter/WriteBufferFullExeception.java | 48 + .../mina/filter/WriteBufferLimitFilterBuilder.java | 272 + .../filter/codec/OurCumulativeProtocolDecoder.java | 197 + .../mina/filter/codec/QpidProtocolCodecFilter.java | 440 + .../socket/nio/MultiThreadSocketAcceptor.java | 547 + .../socket/nio/MultiThreadSocketConnector.java | 486 + .../socket/nio/MultiThreadSocketFilterChain.java | 67 + .../socket/nio/MultiThreadSocketIoProcessor.java | 1026 + .../nio/MultiThreadSocketSessionConfigImpl.java | 240 + .../socket/nio/MultiThreadSocketSessionImpl.java | 488 + .../mina/transport/vmpipe/QpidVmPipeConnector.java | 151 + .../org/apache/qpid/AMQChannelClosedException.java | 41 + .../java/org/apache/qpid/AMQChannelException.java | 59 + .../apache/qpid/AMQConnectionClosedException.java | 44 + .../org/apache/qpid/AMQConnectionException.java | 70 + .../apache/qpid/AMQConnectionFailureException.java | 65 + .../org/apache/qpid/AMQDisconnectedException.java | 39 + .../main/java/org/apache/qpid/AMQException.java | 122 + .../apache/qpid/AMQInvalidArgumentException.java | 45 + .../apache/qpid/AMQInvalidRoutingKeyException.java | 39 + .../org/apache/qpid/AMQPInvalidClassException.java | 39 + .../java/org/apache/qpid/AMQProtocolException.java | 38 + .../java/org/apache/qpid/AMQTimeoutException.java | 39 + .../org/apache/qpid/AMQUndeliveredException.java | 54 + .../org/apache/qpid/AMQUnknownExchangeType.java | 43 + .../apache/qpid/AMQUnresolvedAddressException.java | 50 + .../main/java/org/apache/qpid/ConsoleOutput.java | 62 + .../src/main/java/org/apache/qpid/ErrorCode.java | 123 + .../src/main/java/org/apache/qpid/QpidConfig.java | 111 + .../main/java/org/apache/qpid/QpidException.java | 58 + .../main/java/org/apache/qpid/SerialException.java | 40 + .../src/main/java/org/apache/qpid/ToyBroker.java | 188 + .../src/main/java/org/apache/qpid/ToyClient.java | 108 + .../src/main/java/org/apache/qpid/ToyExchange.java | 154 + .../src/main/java/org/apache/qpid/api/Message.java | 126 + .../org/apache/qpid/codec/AMQCodecFactory.java | 78 + .../java/org/apache/qpid/codec/AMQDecoder.java | 340 + .../java/org/apache/qpid/codec/AMQEncoder.java | 66 + .../org/apache/qpid/common/AMQPFilterTypes.java | 61 + .../org/apache/qpid/common/ClientProperties.java | 52 + .../org/apache/qpid/common/QpidProperties.java | 190 + .../org/apache/qpid/configuration/Configured.java | 44 + .../qpid/configuration/PropertyException.java | 43 + .../apache/qpid/configuration/PropertyUtils.java | 164 + .../src/main/java/org/apache/qpid/dtx/XidImpl.java | 250 + .../org/apache/qpid/exchange/ExchangeDefaults.java | 65 + .../main/java/org/apache/qpid/framing/AMQBody.java | 40 + .../java/org/apache/qpid/framing/AMQDataBlock.java | 63 + .../apache/qpid/framing/AMQDataBlockDecoder.java | 131 + .../apache/qpid/framing/AMQDataBlockEncoder.java | 61 + .../java/org/apache/qpid/framing/AMQFrame.java | 125 + .../qpid/framing/AMQFrameDecodingException.java | 47 + .../org/apache/qpid/framing/AMQMethodBody.java | 83 + .../apache/qpid/framing/AMQMethodBodyFactory.java | 45 + .../org/apache/qpid/framing/AMQMethodBodyImpl.java | 258 + .../qpid/framing/AMQMethodBodyInstanceFactory.java | 30 + .../org/apache/qpid/framing/AMQMethodFactory.java | 90 + .../qpid/framing/AMQProtocolClassException.java | 39 + .../qpid/framing/AMQProtocolHeaderException.java | 41 + .../qpid/framing/AMQProtocolInstanceException.java | 39 + .../qpid/framing/AMQProtocolVersionException.java | 39 + .../org/apache/qpid/framing/AMQShortString.java | 776 + .../qpid/framing/AMQShortStringTokenizer.java | 31 + .../main/java/org/apache/qpid/framing/AMQType.java | 795 + .../java/org/apache/qpid/framing/AMQTypeMap.java | 48 + .../org/apache/qpid/framing/AMQTypedValue.java | 179 + .../qpid/framing/BasicContentHeaderProperties.java | 838 + .../java/org/apache/qpid/framing/BodyFactory.java | 31 + .../framing/CommonContentHeaderProperties.java | 81 + .../apache/qpid/framing/CompositeAMQDataBlock.java | 78 + .../main/java/org/apache/qpid/framing/Content.java | 26 + .../java/org/apache/qpid/framing/ContentBody.java | 121 + .../apache/qpid/framing/ContentBodyFactory.java | 48 + .../org/apache/qpid/framing/ContentHeaderBody.java | 131 + .../qpid/framing/ContentHeaderBodyFactory.java | 50 + .../qpid/framing/ContentHeaderProperties.java | 60 + .../framing/ContentHeaderPropertiesFactory.java | 59 + .../org/apache/qpid/framing/DeferredDataBlock.java | 50 + .../apache/qpid/framing/EncodableAMQDataBlock.java | 35 + .../org/apache/qpid/framing/EncodingUtils.java | 1033 + .../java/org/apache/qpid/framing/FieldTable.java | 1212 + .../org/apache/qpid/framing/FieldTableFactory.java | 38 + .../org/apache/qpid/framing/HeartbeatBody.java | 79 + .../apache/qpid/framing/HeartbeatBodyFactory.java | 31 + .../apache/qpid/framing/ProtocolInitiation.java | 211 + .../qpid/framing/SmallCompositeAMQDataBlock.java | 98 + .../qpid/framing/VersionSpecificRegistry.java | 198 + .../abstraction/AbstractMethodConverter.java | 47 + .../qpid/framing/abstraction/ContentChunk.java | 32 + .../framing/abstraction/MessagePublishInfo.java | 38 + .../abstraction/MessagePublishInfoConverter.java | 32 + .../abstraction/MessagePublishInfoImpl.java | 85 + .../ProtocolVersionMethodConverter.java | 36 + .../qpid/framing/amqp_0_9/AMQMethodBody_0_9.java | 37 + .../qpid/framing/amqp_0_9/MethodConverter_0_9.java | 134 + .../qpid/framing/amqp_0_91/AMQMethodBody_0_91.java | 37 + .../framing/amqp_0_91/MethodConverter_0_91.java | 132 + .../qpid/framing/amqp_8_0/AMQMethodBody_8_0.java | 40 + .../qpid/framing/amqp_8_0/MethodConverter_8_0.java | 113 + .../src/main/java/org/apache/qpid/pool/Job.java | 253 + .../org/apache/qpid/pool/ReadWriteJobQueue.java | 432 + .../org/apache/qpid/pool/ReadWriteRunnable.java | 26 + .../pool/ReferenceCountingExecutorService.java | 172 + .../java/org/apache/qpid/protocol/AMQConstant.java | 236 + .../org/apache/qpid/protocol/AMQMethodEvent.java | 95 + .../apache/qpid/protocol/AMQMethodListener.java | 70 + .../apache/qpid/protocol/AMQProtocolWriter.java | 43 + .../protocol/AMQVersionAwareProtocolSession.java | 64 + .../org/apache/qpid/protocol/ProtocolEngine.java | 61 + .../qpid/protocol/ProtocolEngineFactory.java | 31 + .../apache/qpid/protocol/ProtocolVersionAware.java | 53 + .../apache/qpid/security/AMQPCallbackHandler.java | 28 + .../security/UsernamePasswordCallbackHandler.java | 60 + .../org/apache/qpid/ssl/SSLContextFactory.java | 195 + .../apache/qpid/thread/DefaultThreadFactory.java | 18 + .../org/apache/qpid/thread/QpidThreadExecutor.java | 42 + .../apache/qpid/thread/RealtimeThreadFactory.java | 47 + .../java/org/apache/qpid/thread/ThreadFactory.java | 7 + .../java/org/apache/qpid/thread/Threading.java | 26 + .../java/org/apache/qpid/transport/Binary.java | 145 + .../java/org/apache/qpid/transport/Binding.java | 36 + .../org/apache/qpid/transport/ClientDelegate.java | 171 + .../java/org/apache/qpid/transport/Connection.java | 553 + .../apache/qpid/transport/ConnectionDelegate.java | 103 + .../apache/qpid/transport/ConnectionException.java | 70 + .../apache/qpid/transport/ConnectionListener.java | 38 + .../main/java/org/apache/qpid/transport/Echo.java | 73 + .../main/java/org/apache/qpid/transport/Field.java | 83 + .../java/org/apache/qpid/transport/Future.java | 37 + .../java/org/apache/qpid/transport/Header.java | 92 + .../java/org/apache/qpid/transport/Method.java | 236 + .../org/apache/qpid/transport/NetworkDriver.java | 63 + .../qpid/transport/NetworkDriverConfiguration.java | 44 + .../org/apache/qpid/transport/OpenException.java | 34 + .../apache/qpid/transport/ProtocolDelegate.java | 40 + .../org/apache/qpid/transport/ProtocolError.java | 83 + .../org/apache/qpid/transport/ProtocolEvent.java | 40 + .../org/apache/qpid/transport/ProtocolHeader.java | 118 + .../qpid/transport/ProtocolVersionException.java | 62 + .../qpid/transport/ProtocolViolationException.java | 35 + .../main/java/org/apache/qpid/transport/Range.java | 125 + .../java/org/apache/qpid/transport/RangeSet.java | 152 + .../java/org/apache/qpid/transport/Receiver.java | 38 + .../java/org/apache/qpid/transport/Result.java | 30 + .../java/org/apache/qpid/transport/Sender.java | 39 + .../org/apache/qpid/transport/SenderException.java | 52 + .../org/apache/qpid/transport/ServerDelegate.java | 183 + .../java/org/apache/qpid/transport/Session.java | 962 + .../qpid/transport/SessionClosedException.java | 49 + .../org/apache/qpid/transport/SessionDelegate.java | 194 + .../apache/qpid/transport/SessionException.java | 61 + .../org/apache/qpid/transport/SessionListener.java | 42 + .../main/java/org/apache/qpid/transport/Sink.java | 138 + .../java/org/apache/qpid/transport/Struct.java | 142 + .../apache/qpid/transport/TransportException.java | 51 + .../qpid/transport/codec/AbstractDecoder.java | 470 + .../qpid/transport/codec/AbstractEncoder.java | 620 + .../org/apache/qpid/transport/codec/BBDecoder.java | 144 + .../org/apache/qpid/transport/codec/BBEncoder.java | 334 + .../org/apache/qpid/transport/codec/Decoder.java | 283 + .../org/apache/qpid/transport/codec/Encodable.java | 44 + .../org/apache/qpid/transport/codec/Encoder.java | 282 + .../apache/qpid/transport/network/Assembler.java | 227 + .../qpid/transport/network/ConnectionBinding.java | 83 + .../qpid/transport/network/Disassembler.java | 245 + .../org/apache/qpid/transport/network/Frame.java | 151 + .../qpid/transport/network/InputHandler.java | 205 + .../qpid/transport/network/NetworkDelegate.java | 42 + .../qpid/transport/network/NetworkEvent.java | 34 + .../transport/network/io/InputHandler_0_9.java | 130 + .../qpid/transport/network/io/IoAcceptor.java | 92 + .../qpid/transport/network/io/IoReceiver.java | 162 + .../apache/qpid/transport/network/io/IoSender.java | 309 + .../qpid/transport/network/io/IoTransport.java | 229 + .../transport/network/mina/MINANetworkDriver.java | 421 + .../qpid/transport/network/mina/MinaHandler.java | 274 + .../qpid/transport/network/mina/MinaSender.java | 90 + .../qpid/transport/network/nio/NioHandler.java | 140 + .../qpid/transport/network/nio/NioSender.java | 126 + .../qpid/transport/network/ssl/SSLReceiver.java | 184 + .../qpid/transport/network/ssl/SSLSender.java | 255 + .../org/apache/qpid/transport/util/Functions.java | 102 + .../org/apache/qpid/transport/util/Logger.java | 130 + .../apache/qpid/transport/util/SliceIterator.java | 59 + .../org/apache/qpid/transport/util/Waiter.java | 63 + .../java/org/apache/qpid/url/AMQBindingURL.java | 236 + .../main/java/org/apache/qpid/url/BindingURL.java | 59 + .../java/org/apache/qpid/url/BindingURLParser.java | 466 + .../main/java/org/apache/qpid/url/URLHelper.java | 173 + .../org/apache/qpid/url/URLSyntaxException.java | 97 + .../org/apache/qpid/util/CommandLineParser.java | 689 + .../ConcurrentLinkedMessageQueueAtomicSize.java | 258 + .../qpid/util/ConcurrentLinkedQueueAtomicSize.java | 70 + .../qpid/util/ConcurrentLinkedQueueNoSize.java | 38 + .../main/java/org/apache/qpid/util/FileUtils.java | 377 + .../java/org/apache/qpid/util/MessageQueue.java | 43 + .../java/org/apache/qpid/util/NameUUIDGen.java | 59 + .../main/java/org/apache/qpid/util/NetMatcher.java | 264 + .../org/apache/qpid/util/PrettyPrintingUtils.java | 75 + .../java/org/apache/qpid/util/RandomUUIDGen.java | 39 + .../src/main/java/org/apache/qpid/util/Serial.java | 108 + .../main/java/org/apache/qpid/util/Strings.java | 238 + .../main/java/org/apache/qpid/util/UUIDGen.java | 36 + .../src/main/java/org/apache/qpid/util/UUIDs.java | 59 + .../util/concurrent/AlreadyUnblockedException.java | 34 + .../qpid/util/concurrent/BatchSynchQueue.java | 122 + .../qpid/util/concurrent/BatchSynchQueueBase.java | 834 + .../apache/qpid/util/concurrent/BooleanLatch.java | 128 + .../org/apache/qpid/util/concurrent/Capacity.java | 35 + .../org/apache/qpid/util/concurrent/Condition.java | 50 + .../apache/qpid/util/concurrent/SynchBuffer.java | 50 + .../qpid/util/concurrent/SynchException.java | 52 + .../apache/qpid/util/concurrent/SynchQueue.java | 48 + .../apache/qpid/util/concurrent/SynchRecord.java | 74 + .../org/apache/qpid/util/concurrent/SynchRef.java | 51 + .../main/resources/org/apache/qpid/ssl/qpid.cert | Bin 0 -> 756 bytes .../apache/mina/SocketIOTest/IOWriterClient.java | 396 + .../apache/mina/SocketIOTest/IOWriterServer.java | 157 + .../java/org/apache/qpid/AMQExceptionTest.java | 106 + .../java/org/apache/qpid/codec/AMQDecoderTest.java | 130 + .../codec/MockAMQVersionAwareProtocolSession.java | 84 + .../apache/qpid/framing/AMQShortStringTest.java | 109 + .../framing/BasicContentHeaderPropertiesTest.java | 188 + .../qpid/framing/PropertyFieldTableTest.java | 960 + .../abstraction/MessagePublishInfoImplTest.java | 99 + .../java/org/apache/qpid/session/TestSession.java | 277 + .../org/apache/qpid/thread/ThreadFactoryTest.java | 46 + .../org/apache/qpid/transport/ConnectionTest.java | 446 + .../java/org/apache/qpid/transport/GenTest.java | 44 + .../org/apache/qpid/transport/RangeSetTest.java | 238 + .../apache/qpid/transport/TestNetworkDriver.java | 122 + .../apache/qpid/transport/codec/BBEncoderTest.java | 47 + .../network/mina/MINANetworkDriverTest.java | 491 + .../apache/qpid/util/CommandLineParserTest.java | 554 + .../java/org/apache/qpid/util/FileUtilsTest.java | 612 + .../test/java/org/apache/qpid/util/SerialTest.java | 82 + .../common/templates/method/MethodBodyInterface.vm | 62 + .../templates/method/version/MethodBodyClass.vm | 209 + .../model/ClientMethodDispatcherInterface.vm | 56 + .../templates/model/MethodDispatcherInterface.vm | 39 + .../common/templates/model/MethodRegistryClass.vm | 104 + .../templates/model/ProtocolVersionListClass.vm | 201 + .../model/ServerMethodDispatcherInterface.vm | 56 + .../templates/model/version/AmqpConstantsClass.vm | 37 + .../version/ClientMethodDispatcherInterface.vm | 55 + .../model/version/MethodDispatcherInterface.vm | 43 + .../templates/model/version/MethodRegistryClass.vm | 193 + .../version/ServerMethodDispatcherInterface.vm | 55 + trunk/qpid/java/common/templating.py | 119 + trunk/qpid/java/doc/AMQBlazeDetailedDesign.vsd | Bin 0 -> 120320 bytes trunk/qpid/java/doc/FramingClassDiagram.vsd | Bin 0 -> 206848 bytes trunk/qpid/java/doc/Qpid-architecture.dia | Bin 0 -> 2149 bytes trunk/qpid/java/doc/broker-0.5-network.dia | Bin 0 -> 5187 bytes trunk/qpid/java/doc/broker-0.N-network-phase-1.dia | Bin 0 -> 4283 bytes trunk/qpid/java/doc/broker-0.N-state.dia | Bin 0 -> 2477 bytes trunk/qpid/java/doc/broker-overview.dia | Bin 0 -> 1263 bytes .../doc/broker-priority-queue-subscription.dia | Bin 0 -> 2991 bytes trunk/qpid/java/doc/broker-queue-subscription.dia | Bin 0 -> 2129 bytes .../java/doc/client-0.5-connection-creation.dia | Bin 0 -> 3158 bytes .../java/doc/client-0.5-network-processing.dia | Bin 0 -> 5331 bytes .../java/doc/client-0.N-network-processing.dia | Bin 0 -> 4039 bytes trunk/qpid/java/doc/common-0.N-network.dia | Bin 0 -> 1858 bytes .../network-driver-protocol-engine-sequence.dia | Bin 0 -> 1826 bytes trunk/qpid/java/doc/noddy-network-blocks.dia | Bin 0 -> 1877 bytes trunk/qpid/java/etc/code-style.xml | 251 + trunk/qpid/java/etc/coding_standards.xml | 138 + trunk/qpid/java/etc/license_header.txt | 20 + trunk/qpid/java/etc/log4j.xml | 61 + trunk/qpid/java/genpom | 150 + trunk/qpid/java/integrationtests/README.txt | 13 + .../qpid/java/integrationtests/bin/interoptests.py | 180 + trunk/qpid/java/integrationtests/build.xml | 28 + .../docs/RunningSustainedTests.txt | 17 + .../integrationtests/jar-with-dependencies.xml | 47 + .../interop/clienttestcases/TestCase1DummyRun.java | 135 + .../interop/clienttestcases/TestCase2BasicP2P.java | 209 + .../clienttestcases/TestCase3BasicPubSub.java | 239 + .../clienttestcases/TestCase4P2PMessageSize.java | 214 + .../TestCase5PubSubMessageSize.java | 243 + .../testcases/InteropTestCase1DummyRun.java | 84 + .../testcases/InteropTestCase2BasicP2P.java | 90 + .../testcases/InteropTestCase3BasicPubSub.java | 88 + .../testcases/InteropTestCase4P2PMessageSize.java | 193 + .../InteropTestCase5PubSubMessageSize.java | 193 + .../qpid/sustained/SustainedClientTestCase.java | 906 + .../apache/qpid/sustained/SustainedTestCase.java | 126 + .../src/resources/sustained-log4j.xml | 69 + trunk/qpid/java/junit-toolkit/build.xml | 26 + .../junit/concurrency/DefaultThreadFactory.java | 48 + .../concurrency/PossibleDeadlockException.java | 46 + .../qpid/junit/concurrency/TestRunnable.java | 239 + .../junit/concurrency/ThreadTestCoordinator.java | 486 + .../qpid/junit/concurrency/ThreadTestExample.java | 145 + .../org/apache/qpid/junit/concurrency/package.html | 28 + .../qpid/junit/extensions/AsymptoticTestCase.java | 303 + .../junit/extensions/AsymptoticTestDecorator.java | 170 + .../apache/qpid/junit/extensions/BaseThrottle.java | 98 + .../qpid/junit/extensions/BatchedThrottle.java | 94 + .../junit/extensions/DurationTestDecorator.java | 205 + .../qpid/junit/extensions/InstrumentedTest.java | 66 + .../qpid/junit/extensions/NullResultPrinter.java | 92 + .../ParameterVariationTestDecorator.java | 172 + .../qpid/junit/extensions/ScaledTestDecorator.java | 375 + .../qpid/junit/extensions/SetupTaskAware.java | 55 + .../qpid/junit/extensions/SetupTaskHandler.java | 92 + .../qpid/junit/extensions/ShutdownHookable.java | 42 + .../qpid/junit/extensions/SleepThrottle.java | 81 + .../apache/qpid/junit/extensions/TKTestResult.java | 625 + .../apache/qpid/junit/extensions/TKTestRunner.java | 694 + .../TestRunnerImprovedErrorHandling.java | 131 + .../qpid/junit/extensions/TestThreadAware.java | 49 + .../org/apache/qpid/junit/extensions/Throttle.java | 73 + .../qpid/junit/extensions/TimingController.java | 175 + .../junit/extensions/TimingControllerAware.java | 43 + .../extensions/WrappedSuiteTestDecorator.java | 134 + .../extensions/listeners/CSVTestListener.java | 532 + .../extensions/listeners/ConsoleTestListener.java | 264 + .../junit/extensions/listeners/TKTestListener.java | 132 + .../extensions/listeners/XMLTestListener.java | 400 + .../qpid/junit/extensions/listeners/package.html | 27 + .../org/apache/qpid/junit/extensions/package.html | 33 + .../junit/extensions/util/CommandLineParser.java | 787 + .../extensions/util/ContextualProperties.java | 494 + .../qpid/junit/extensions/util/MathUtils.java | 428 + .../junit/extensions/util/ParsedProperties.java | 390 + .../apache/qpid/junit/extensions/util/SizeOf.java | 94 + .../qpid/junit/extensions/util/StackQueue.java | 131 + .../extensions/util/TestContextProperties.java | 202 + .../qpid/junit/extensions/util/TestUtils.java | 54 + .../apache/qpid/junit/extensions/util/package.html | 27 + .../qpid/java/lib/backport-util-concurrent-2.2.jar | Bin 0 -> 326319 bytes trunk/qpid/java/lib/bnd-0.0.249.jar | Bin 0 -> 255605 bytes trunk/qpid/java/lib/cobertura/README.txt | 10 + .../qpid/java/lib/com.ibm.icu_3.8.1.v20080530.jar | Bin 0 -> 4467363 bytes .../qpid/java/lib/commons-beanutils-core-1.8.0.jar | Bin 0 -> 206035 bytes trunk/qpid/java/lib/commons-cli-1.0.jar | Bin 0 -> 30117 bytes trunk/qpid/java/lib/commons-codec-1.3.jar | Bin 0 -> 46725 bytes trunk/qpid/java/lib/commons-collections-3.2.jar | Bin 0 -> 571259 bytes trunk/qpid/java/lib/commons-configuration-1.6.jar | Bin 0 -> 298829 bytes trunk/qpid/java/lib/commons-digester-1.8.1.jar | Bin 0 -> 146108 bytes trunk/qpid/java/lib/commons-lang-2.2.jar | Bin 0 -> 243016 bytes trunk/qpid/java/lib/commons-logging-1.0.4.jar | Bin 0 -> 38015 bytes trunk/qpid/java/lib/commons-pool-1.4.jar | Bin 0 -> 87077 bytes trunk/qpid/java/lib/core-3.1.1.jar | Bin 0 -> 3566844 bytes trunk/qpid/java/lib/derby-10.3.2.1.jar | Bin 0 -> 2343388 bytes trunk/qpid/java/lib/geronimo-jms_1.1_spec-1.0.jar | Bin 0 -> 28211 bytes .../java/lib/geronimo-servlet_2.5_spec-1.2.jar | Bin 0 -> 70593 bytes trunk/qpid/java/lib/javacc.jar | Bin 0 -> 378781 bytes trunk/qpid/java/lib/javassist.jar | Bin 0 -> 471005 bytes trunk/qpid/java/lib/jetty-6.1.14.jar | Bin 0 -> 516429 bytes trunk/qpid/java/lib/jetty-util-6.1.14.jar | Bin 0 -> 163122 bytes trunk/qpid/java/lib/jline-0.9.94.jar | Bin 0 -> 87325 bytes trunk/qpid/java/lib/jsp-2.1.jar | Bin 0 -> 1024681 bytes trunk/qpid/java/lib/jsp-api-2.1.jar | Bin 0 -> 134910 bytes trunk/qpid/java/lib/junit-3.8.1.jar | Bin 0 -> 121070 bytes trunk/qpid/java/lib/junit-4.4.jar | Bin 0 -> 161477 bytes trunk/qpid/java/lib/jython-2.5.0.jar | Bin 0 -> 8580107 bytes trunk/qpid/java/lib/log4j-1.2.12.jar | Bin 0 -> 358085 bytes trunk/qpid/java/lib/mina-core-1.0.1.jar | Bin 0 -> 313338 bytes trunk/qpid/java/lib/mina-filter-ssl-1.0.1.jar | Bin 0 -> 28950 bytes trunk/qpid/java/lib/muse-core-2.2.0.jar | Bin 0 -> 121976 bytes trunk/qpid/java/lib/muse-platform-mini-2.2.0.jar | Bin 0 -> 8227 bytes trunk/qpid/java/lib/muse-util-2.2.0.jar | Bin 0 -> 23215 bytes trunk/qpid/java/lib/muse-util-qname-2.2.0.jar | Bin 0 -> 4968 bytes trunk/qpid/java/lib/muse-util-xml-2.2.0.jar | Bin 0 -> 19082 bytes trunk/qpid/java/lib/muse-wsa-soap-2.2.0.jar | Bin 0 -> 25030 bytes .../qpid/java/lib/muse-wsdm-muws-adv-api-2.2.0.jar | Bin 0 -> 4145 bytes .../java/lib/muse-wsdm-muws-adv-impl-2.2.0.jar | Bin 0 -> 10366 bytes trunk/qpid/java/lib/muse-wsdm-muws-api-2.2.0.jar | Bin 0 -> 18492 bytes trunk/qpid/java/lib/muse-wsdm-muws-impl-2.2.0.jar | Bin 0 -> 57860 bytes trunk/qpid/java/lib/muse-wsdm-wef-api-2.2.0.jar | Bin 0 -> 9125 bytes trunk/qpid/java/lib/muse-wsdm-wef-impl-2.2.0.jar | Bin 0 -> 18049 bytes trunk/qpid/java/lib/muse-wsn-api-2.2.0.jar | Bin 0 -> 29692 bytes trunk/qpid/java/lib/muse-wsn-impl-2.2.0.jar | Bin 0 -> 80531 bytes trunk/qpid/java/lib/muse-wsrf-api-2.2.0.jar | Bin 0 -> 58684 bytes trunk/qpid/java/lib/muse-wsrf-impl-2.2.0.jar | Bin 0 -> 127656 bytes trunk/qpid/java/lib/muse-wsrf-rmd-2.2.0.jar | Bin 0 -> 5625 bytes trunk/qpid/java/lib/muse-wsx-api-2.2.0.jar | Bin 0 -> 4624 bytes trunk/qpid/java/lib/muse-wsx-impl-2.2.0.jar | Bin 0 -> 9349 bytes ...g.apache.commons.codec_1.3.0.v20080530-1600.jar | Bin 0 -> 53757 bytes .../java/lib/org.apache.felix.framework-1.0.0.jar | Bin 0 -> 320272 bytes ....eclipse.core.commands_3.4.0.I20080509-2000.jar | Bin 0 -> 105794 bytes ...lipse.core.contenttype_3.3.0.v20080604-1400.jar | Bin 0 -> 86969 bytes ...ipse.core.databinding_1.1.1.M20080827-0800b.jar | Bin 0 -> 347799 bytes ...lipse.core.expressions_3.4.0.v20080603-2000.jar | Bin 0 -> 83841 bytes .../lib/org.eclipse.core.jobs_3.4.0.v20080512.jar | Bin 0 -> 82491 bytes .../META-INF/ECLIPSE.RSA | Bin 0 -> 3487 bytes .../META-INF/ECLIPSE.SF | 17 + .../META-INF/MANIFEST.MF | 25 + .../META-INF/eclipse.inf | 3 + .../about.html | 28 + .../fragment.properties | 12 + .../runtime_registry_compatibility.jar | Bin 0 -> 10994 bytes .../org.eclipse.core.runtime_3.4.0.v20080512.jar | Bin 0 -> 69019 bytes ...rg.eclipse.equinox.app_1.1.0.v20080421-2006.jar | Bin 0 -> 79866 bytes ...eclipse.equinox.common_3.4.0.v20080421-2006.jar | Bin 0 -> 94649 bytes .../META-INF/ECLIPSE.RSA | Bin 0 -> 3487 bytes .../META-INF/ECLIPSE.SF | 17 + .../META-INF/MANIFEST.MF | 25 + .../META-INF/eclipse.inf | 3 + .../about.html | 28 + .../eclipse_1115.so | Bin 0 -> 118028 bytes .../launcher.carbon.macosx.properties | 12 + .../META-INF/ECLIPSE.RSA | Bin 0 -> 3487 bytes .../META-INF/ECLIPSE.SF | 17 + .../META-INF/MANIFEST.MF | 25 + .../META-INF/eclipse.inf | 3 + .../about.html | 28 + .../eclipse_1115.so | Bin 0 -> 133193 bytes .../launcher.gtk.linux.x86.properties | 12 + .../META-INF/ECLIPSE.RSA | Bin 0 -> 3487 bytes .../META-INF/ECLIPSE.SF | 17 + .../META-INF/MANIFEST.MF | 25 + .../META-INF/eclipse.inf | 3 + .../about.html | 28 + .../eclipse_1115.so | Bin 0 -> 169725 bytes .../launcher.gtk.linux.x86_64.properties | 12 + .../META-INF/ECLIPSE.RSA | Bin 0 -> 3487 bytes .../META-INF/ECLIPSE.SF | 17 + .../META-INF/MANIFEST.MF | 25 + .../META-INF/eclipse.inf | 3 + .../about.html | 28 + .../eclipse_1115.so | Bin 0 -> 76500 bytes .../launcher.gtk.solaris.sparc.properties | 12 + .../META-INF/ECLIPSE.RSA | Bin 0 -> 3487 bytes .../META-INF/ECLIPSE.SF | 17 + .../META-INF/MANIFEST.MF | 25 + .../META-INF/eclipse.inf | 3 + .../about.html | 28 + .../eclipse_1115.dll | Bin 0 -> 81920 bytes .../launcher.win32.win32.x86.properties | 12 + ...pse.equinox.launcher_1.0.101.R34x_v20080819.jar | Bin 0 -> 43682 bytes ....equinox.preferences_3.2.201.R34x_v20080709.jar | Bin 0 -> 104280 bytes ...lipse.equinox.registry_3.4.0.v20080516-0950.jar | Bin 0 -> 172936 bytes .../lib/org.eclipse.help_3.3.101.v20080702_34x.jar | Bin 0 -> 216698 bytes ...pse.jface.databinding_1.2.1.M20080827-0800a.jar | Bin 0 -> 196505 bytes .../lib/org.eclipse.jface_3.4.1.M20080827-2000.jar | Bin 0 -> 1040433 bytes .../org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar | Bin 0 -> 997883 bytes .../org.eclipse.swt.carbon.macosx_3.4.1.v3449c.jar | Bin 0 -> 1852007 bytes .../org.eclipse.swt.gtk.linux.x86_3.4.1.v3449c.jar | Bin 0 -> 2006608 bytes ...g.eclipse.swt.gtk.linux.x86_64_3.4.1.v3449c.jar | Bin 0 -> 2123120 bytes ....eclipse.swt.gtk.solaris.sparc_3.4.1.v3449c.jar | Bin 0 -> 1877410 bytes ...rg.eclipse.swt.win32.win32.x86_3.4.1.v3449c.jar | Bin 0 -> 2123125 bytes .../qpid/java/lib/org.eclipse.swt_3.4.1.v3449c.jar | Bin 0 -> 15807 bytes .../org.eclipse.ui.forms_3.3.101.v20080708_34x.jar | Bin 0 -> 298053 bytes ....eclipse.ui.workbench_3.4.1.M20080827-0800a.jar | Bin 0 -> 3922042 bytes .../lib/org.eclipse.ui_3.4.1.M20080910-0800.jar | Bin 0 -> 145322 bytes trunk/qpid/java/lib/org.osgi.core_1.0.0.jar | Bin 0 -> 60929 bytes .../java/lib/poms/backport-util-concurrent-2.2.pom | 25 + .../java/lib/poms/commons-beanutils-core-1.8.0.pom | 42 + trunk/qpid/java/lib/poms/commons-cli-1.0.pom | 76 + trunk/qpid/java/lib/poms/commons-codec-1.3.pom | 178 + .../qpid/java/lib/poms/commons-collections-3.2.pom | 420 + .../java/lib/poms/commons-configuration-1.6.pom | 419 + .../qpid/java/lib/poms/commons-digester-1.8.1.pom | 316 + trunk/qpid/java/lib/poms/commons-lang-2.2.pom | 414 + trunk/qpid/java/lib/poms/commons-logging-1.0.4.pom | 165 + trunk/qpid/java/lib/poms/commons-pool-1.4.pom | 209 + trunk/qpid/java/lib/poms/derby-10.3.2.1.pom | 43 + .../java/lib/poms/geronimo-jms_1.1_spec-1.0.pom | 6 + trunk/qpid/java/lib/poms/junit-3.8.1.pom | 29 + trunk/qpid/java/lib/poms/log4j-1.2.12.pom | 6 + trunk/qpid/java/lib/poms/mina-core-1.0.1.pom | 34 + trunk/qpid/java/lib/poms/mina-filter-ssl-1.0.1.pom | 27 + .../lib/poms/org.apache.felix.framework-1.0.0.pom | 66 + trunk/qpid/java/lib/poms/org.osgi.core-1.0.0.pom | 56 + trunk/qpid/java/lib/poms/slf4j-api-1.4.0.pom | 73 + trunk/qpid/java/lib/poms/slf4j-log4j12-1.4.0.pom | 44 + trunk/qpid/java/lib/poms/xalan-2.7.0.pom | 19 + trunk/qpid/java/lib/slf4j-api-1.4.0.jar | Bin 0 -> 13095 bytes trunk/qpid/java/lib/slf4j-log4j12-1.4.0.jar | Bin 0 -> 7132 bytes trunk/qpid/java/lib/start.jar | Bin 0 -> 17125 bytes trunk/qpid/java/lib/wsdl4j-1.6.1.jar | Bin 0 -> 148522 bytes trunk/qpid/java/lib/xalan-2.7.0.jar | Bin 0 -> 2730442 bytes trunk/qpid/java/lib/xercesImpl-2.8.1.jar | Bin 0 -> 1212965 bytes trunk/qpid/java/lib/xml-apis-1.3.03.jar | Bin 0 -> 195119 bytes trunk/qpid/java/management/agent/build.xml | 27 + .../src/main/java/org/apache/qpid/agent/Agent.java | 707 + .../java/org/apache/qpid/agent/AgentException.java | 45 + .../java/org/apache/qpid/agent/EventSeverity.java | 6 + .../java/org/apache/qpid/agent/ManagedEJB.java | 138 + .../java/org/apache/qpid/agent/ManagedObject.java | 52 + .../org/apache/qpid/agent/ManagedObjectBase.java | 72 + .../java/org/apache/qpid/agent/ManagedPOJO.java | 90 + .../apache/qpid/agent/annotations/QMFAgent.java | 34 + .../apache/qpid/agent/annotations/QMFEvent.java | 42 + .../org/apache/qpid/agent/annotations/QMFHide.java | 39 + .../apache/qpid/agent/annotations/QMFObject.java | 42 + .../apache/qpid/agent/annotations/QMFProperty.java | 39 + .../apache/qpid/agent/annotations/QMFSeeAlso.java | 40 + .../org/apache/qpid/agent/annotations/QMFType.java | 42 + .../apache/qpid/agent/binding/BindingContext.java | 213 + .../qpid/agent/binding/BindingException.java | 50 + .../apache/qpid/agent/binding/BindingUtils.java | 137 + .../apache/qpid/agent/binding/ClassBinding.java | 602 + .../org/apache/qpid/agent/binding/EnumBinding.java | 108 + .../org/apache/qpid/agent/binding/ListBinding.java | 131 + .../org/apache/qpid/agent/binding/MapBinding.java | 95 + .../apache/qpid/agent/binding/MethodBinding.java | 91 + .../qpid/agent/binding/ParameterBinding.java | 121 + .../apache/qpid/agent/binding/PropertyBinding.java | 131 + .../apache/qpid/agent/binding/QMFTypeBinding.java | 465 + .../org/apache/qpid/agent/binding/TypeBinding.java | 46 + .../test/java/org/apache/qpid/agent/Crumpet.java | 70 + .../test/java/org/apache/qpid/agent/Muppet.java | 113 + .../test/java/org/apache/qpid/agent/Pikelet.java | 52 + .../test/java/org/apache/qpid/agent/Puppet.java | 29 + trunk/qpid/java/management/client/README | 42 + trunk/qpid/java/management/client/bin/qman-jmx.cmd | 78 + trunk/qpid/java/management/client/bin/qman-jmx.sh | 76 + .../java/management/client/bin/qman-wsdm-start.cmd | 88 + .../java/management/client/bin/qman-wsdm-start.sh | 89 + .../java/management/client/bin/qman-wsdm-stop.cmd | 37 + .../java/management/client/bin/qman-wsdm-stop.sh | 38 + trunk/qpid/java/management/client/build.xml | 213 + .../client/console/brokers_management.jsp | 188 + .../java/management/client/console/console.jsp | 101 + .../java/management/client/console/error_page.jsp | 38 + .../management/client/console/fragments/header.jsp | 15 + .../management/client/console/fragments/menu.jsp | 10 + .../management/client/console/images/asf-logo.png | Bin 0 -> 4735 bytes .../java/management/client/console/images/menu.gif | Bin 0 -> 1953 bytes .../management/client/console/images/menuleft.gif | Bin 0 -> 640 bytes .../management/client/console/images/menuright.gif | Bin 0 -> 1398 bytes .../management/client/console/images/qpid-logo.png | Bin 0 -> 39056 bytes .../management/client/console/images/style.css | 181 + .../management/client/console/jmx_perspective.jsp | 136 + .../client/console/logging_configuration.jsp | 220 + .../client/console/resources_management.jsp | 84 + trunk/qpid/java/management/client/console/tbd.jsp | 27 + .../client/console/wsdm_operations_perspective.jsp | 153 + .../client/console/wsdm_properties_perspective.jsp | 197 + .../client/console/wsdm_rmd_perspective.jsp | 78 + .../client/console/wsdm_wsdl_perspective.jsp | 78 + trunk/qpid/java/management/client/doc/man/qman-jmx | 17 + trunk/qpid/java/management/client/etc/jetty.xml | 26 + trunk/qpid/java/management/client/etc/log4j.xml | 76 + .../java/management/client/etc/qman-config.xml | 68 + .../java/management/client/etc/qman-config.xsd | 63 + trunk/qpid/java/management/client/etc/qman.log4j | 29 + .../client/src/example/ConnectWithBroker.out.ok | 81 + .../example/GetMultipleResourceProperties.out.ok | 262 + .../src/example/GetQManResourceMembers.out.ko | 54 + .../src/example/GetQManResourceMembers.out.ok | 55 + .../example/GetResourceMetadataDescriptor.out.ok | 188 + .../src/example/GetResourcePropertyDocument.out.ok | 138 + .../src/example/GetResourcePropertyRequest.out.ok | 588 + .../example/GetWsdlMetadata.out.ko.no.resources | 58 + .../client/src/example/GetWsdlMetadata.out.ok | 1968 ++ .../src/example/PauseAndResumeSubscription.out.ok | 133 + .../qpid/java/management/client/src/example/README | 69 + .../example/SetResourcePropertiesRequest.out.ok | 2316 ++ .../management/example/AbstractQManExample.java | 140 + .../example/ConnectWithBrokerExample.java | 240 + .../example/ConsumerAndProducerExample.java | 293 + .../GetMultipleResourcePropertiesExample.java | 179 + .../example/GetQManResourceMembersExample.java | 93 + .../GetResourceMetadataDescriptorExample.java | 156 + .../GetResourcePropertyDocumentExample.java | 111 + .../example/GetResourcePropertyExample.java | 172 + .../management/example/GetWSDLMetadataExample.java | 156 + .../example/PausableSubscriptionExample.java | 88 + .../example/SetResourcePropertyExample.java | 306 + .../java/management/client/src/main/java/muse.xml | 188 + .../java/org/apache/qpid/management/Messages.java | 175 + .../java/org/apache/qpid/management/Names.java | 216 + .../java/org/apache/qpid/management/Protocol.java | 52 + .../BrokerAlreadyConnectedException.java | 53 + .../configuration/BrokerConnectionData.java | 270 + .../configuration/BrokerConnectionDataParser.java | 136 + .../configuration/BrokerConnectionException.java | 42 + .../management/configuration/Configuration.java | 489 + .../configuration/ConfigurationException.java | 51 + .../management/configuration/Configurator.java | 240 + .../qpid/management/configuration/IParser.java | 44 + .../configuration/MessageHandlerMapping.java | 64 + .../management/configuration/QpidDatasource.java | 249 + .../apache/qpid/management/configuration/Tag.java | 54 + .../configuration/UnknownAccessCodeException.java | 53 + .../configuration/UnknownBrokerException.java | 43 + .../configuration/UnknownTypeCodeException.java | 53 + .../WorkerManagerConfigurationParser.java | 108 + .../domain/handler/base/BaseMessageHandler.java | 54 + .../base/ContentIndicationMessageHandler.java | 114 + .../domain/handler/base/IMessageHandler.java | 52 + .../handler/impl/ConfigurationMessageHandler.java | 57 + .../handler/impl/EventContentMessageHandler.java | 51 + .../impl/HeartBeatIndicationMessageHandler.java | 39 + .../handler/impl/IMethodInvocationListener.java | 41 + .../impl/InstrumentationMessageHandler.java | 57 + .../domain/handler/impl/InvocationResult.java | 157 + .../impl/MethodOrEventDataTransferObject.java | 68 + .../handler/impl/MethodResponseMessageHandler.java | 106 + .../domain/handler/impl/QpidDomainObject.java | 314 + .../domain/handler/impl/QpidDomainObjectMBean.java | 234 + .../handler/impl/SchemaResponseMessageHandler.java | 217 + .../qpid/management/domain/model/AccessMode.java | 33 + .../qpid/management/domain/model/Direction.java | 33 + .../qpid/management/domain/model/DomainModel.java | 239 + .../qpid/management/domain/model/IValidator.java | 38 + .../management/domain/model/InvocationEvent.java | 76 + .../qpid/management/domain/model/JmxService.java | 410 + .../model/MissingFeatureAttributesException.java | 35 + .../qpid/management/domain/model/QpidArgument.java | 123 + .../management/domain/model/QpidAttribute.java | 105 + .../qpid/management/domain/model/QpidClass.java | 833 + .../management/domain/model/QpidClassMBean.java | 41 + .../qpid/management/domain/model/QpidEntity.java | 163 + .../qpid/management/domain/model/QpidEvent.java | 493 + .../management/domain/model/QpidEventMBean.java | 41 + .../qpid/management/domain/model/QpidFeature.java | 86 + .../domain/model/QpidFeatureBuilder.java | 454 + .../qpid/management/domain/model/QpidMethod.java | 147 + .../qpid/management/domain/model/QpidPackage.java | 279 + .../qpid/management/domain/model/QpidProperty.java | 295 + .../management/domain/model/QpidStatistic.java | 34 + .../model/UnableToBuildFeatureException.java | 51 + .../domain/model/ValidationException.java | 105 + .../qpid/management/domain/model/type/AbsTime.java | 44 + .../qpid/management/domain/model/type/Binary.java | 162 + .../qpid/management/domain/model/type/Boolean.java | 44 + .../management/domain/model/type/DeltaTime.java | 44 + .../qpid/management/domain/model/type/Double.java | 44 + .../qpid/management/domain/model/type/Float.java | 44 + .../qpid/management/domain/model/type/Int16.java | 44 + .../qpid/management/domain/model/type/Int32.java | 44 + .../qpid/management/domain/model/type/Int64.java | 44 + .../qpid/management/domain/model/type/Int8.java | 44 + .../qpid/management/domain/model/type/Map.java | 45 + .../domain/model/type/ObjectReference.java | 44 + .../qpid/management/domain/model/type/Str16.java | 44 + .../qpid/management/domain/model/type/Str8.java | 44 + .../qpid/management/domain/model/type/Type.java | 101 + .../qpid/management/domain/model/type/Uint16.java | 44 + .../qpid/management/domain/model/type/Uint32.java | 44 + .../qpid/management/domain/model/type/Uint64.java | 44 + .../qpid/management/domain/model/type/Uint8.java | 44 + .../qpid/management/domain/model/type/Uuid.java | 46 + .../domain/services/BrokerMessageListener.java | 183 + .../domain/services/ManagementClient.java | 250 + .../domain/services/MessageTokenizer.java | 152 + .../domain/services/MethodInvocationException.java | 50 + .../qpid/management/domain/services/QMan.java | 412 + .../management/domain/services/QpidService.java | 362 + .../domain/services/SequenceNumberGenerator.java | 41 + .../domain/services/StartupFailureException.java | 42 + .../domain/services/UnableToComplyException.java | 31 + .../jmx/EntityLifecycleNotification.java | 147 + .../jmx/OperationHasBeenInvokedNotification.java | 168 + .../management/messages/ManagementMessage.java | 189 + .../messages/MethodInvocationRequestMessage.java | 161 + .../management/messages/SchemaRequestMessage.java | 68 + .../management/servlet/ConnectQManToBroker.java | 89 + .../management/servlet/QManLifeCycleManager.java | 79 + .../qpid/management/servlet/WSDMAdapter.java | 109 + .../qpid/management/web/action/BrokerModel.java | 100 + .../web/action/BrokersManagementAction.java | 204 + .../qpid/management/web/action/ConsoleAction.java | 117 + .../qpid/management/web/action/ConsoleModel.java | 158 + .../web/action/JmxPerspectiveAction.java | 189 + .../web/action/LoggingConfigurationAction.java | 114 + .../web/action/ResourcesManagementAction.java | 91 + .../action/WsdmOperationsPerspectiveAction.java | 191 + .../action/WsdmPropertiesPerspectiveAction.java | 185 + .../web/action/WsdmRmdPerspectiveAction.java | 139 + .../web/action/WsdmWsdlPerspectiveAction.java | 140 + .../java/org/apache/qpid/management/wsdm/QEmu.java | 130 + .../qpid/management/wsdm/QEmuInitializer.java | 95 + .../org/apache/qpid/management/wsdm/QEmuMBean.java | 48 + .../ArtifactsNotAvailableException.java | 76 + .../wsdm/capabilities/BuilderException.java | 41 + .../management/wsdm/capabilities/Constants.java | 44 + .../wsdm/capabilities/ConsumerCapability.java | 68 + .../wsdm/capabilities/DummyCapabilityBuilder.java | 86 + .../wsdm/capabilities/IArtifactBuilder.java | 82 + .../wsdm/capabilities/MBeanCapability.java | 219 + .../wsdm/capabilities/MBeanCapabilityBuilder.java | 549 + .../wsdm/capabilities/QManAdapterCapability.java | 557 + .../wsdm/capabilities/QManMessageHandler.java | 104 + .../QManMetadataExchangeCapability.java | 99 + .../qpid/management/wsdm/capabilities/Result.java | 57 + .../management/wsdm/capabilities/RmdBuilder.java | 135 + .../wsdm/capabilities/WSDMArtifactsDirector.java | 196 + .../management/wsdm/capabilities/WsArtifacts.java | 93 + .../wsdm/capabilities/WsArtifactsFactory.java | 140 + .../management/wsdm/capabilities/WsdlBuilder.java | 460 + .../wsdm/common/EntityInstanceNotFoundFault.java | 58 + .../wsdm/common/MethodInvocationFault.java | 79 + .../wsdm/common/NoSuchAttributeFault.java | 70 + .../wsdm/common/ObjectNameIdFactory.java | 61 + .../qpid/management/wsdm/common/QManFault.java | 72 + .../wsdm/common/QManResourceIdFactory.java | 57 + .../qpid/management/wsdm/common/ThreadSession.java | 105 + .../wsdm/common/ThreadSessionManager.java | 68 + .../common/UnableToConnectWithBrokerFault.java | 86 + .../wsdm/muse/engine/WSDMAdapterEnvironment.java | 97 + .../muse/engine/WSDMAdapterIsolationLayer.java | 36 + .../wsdm/muse/resources/QManWsResource.java | 762 + .../wsdm/muse/serializer/ByteArraySerializer.java | 83 + .../wsdm/muse/serializer/DateSerializer.java | 75 + .../serializer/InvocationResultSerializer.java | 85 + .../wsdm/muse/serializer/MapSerializer.java | 134 + .../wsdm/muse/serializer/ObjectSerializer.java | 202 + .../wsdm/muse/serializer/UUIDSerializer.java | 72 + .../wsdm/notifications/LifeCycleEvent.java | 149 + .../wsdm/notifications/LifeCycleEventType.java | 34 + .../org/apache/qpid/qman/debug/WsdlDebugger.java | 49 + .../org/apache/qpid/qman/debug/XmlDebugger.java | 92 + .../router-entries/adapter/resource-instance-1.xml | 2 + .../consumer/resource-instance-1.xml | 2 + .../client/src/main/java/wsdl/QManAdapter.rmd | 27 + .../client/src/main/java/wsdl/QManAdapter.wsdl | 694 + .../client/src/main/java/wsdl/QManWsResource.rmd | 17 + .../client/src/main/java/wsdl/QManWsResource.wsdl | 507 + .../src/main/java/wsdl/SOAP-Envelope-1_2.xsd | 160 + .../src/main/java/wsdl/WS-Addressing-2005_08.xsd | 148 + .../src/main/java/wsdl/WS-BaseFaults-1_2.xsd | 84 + .../main/java/wsdl/WS-BaseNotification-1_3.wsdl | 449 + .../src/main/java/wsdl/WS-BaseNotification-1_3.xsd | 577 + .../main/java/wsdl/WS-MetadataExchange-2004_09.xsd | 113 + .../client/src/main/java/wsdl/WS-Resource-1_2.wsdl | 54 + .../client/src/main/java/wsdl/WS-Resource-1_2.xsd | 48 + .../main/java/wsdl/WS-ResourceLifetime-1_2.wsdl | 83 + .../src/main/java/wsdl/WS-ResourceLifetime-1_2.xsd | 130 + .../wsdl/WS-ResourceMetadataDescriptor-CD-01.xsd | 325 + .../main/java/wsdl/WS-ResourceProperties-1_2.wsdl | 395 + .../main/java/wsdl/WS-ResourceProperties-1_2.xsd | 394 + .../src/main/java/wsdl/WS-ServiceGroup-1_2.wsdl | 269 + .../src/main/java/wsdl/WS-ServiceGroup-1_2.xsd | 233 + .../main/java/wsdl/WS-ServiceGroupEntry-1_2.wsdl | 206 + .../client/src/main/java/wsdl/WS-Topics-1_3.xsd | 185 + .../src/main/java/wsdl/WSDM-MUWS-Part1-1_1.xsd | 93 + .../src/main/java/wsdl/WSDM-MUWS-Part2-1_1.xsd | 656 + .../client/src/main/java/wsdl/WsResource.rmd | 14 + .../src/main/java/wsdl/WsResourceFactory.wsdl | 22 + .../src/main/java/wsdl/XML-Namespace-1998.xsd | 25 + .../java/management/client/src/test/java/log4j.xml | 32 + .../org/apache/qpid/management/TestConstants.java | 67 + .../configuration/ConfigurationTest.java | 181 + .../management/configuration/ConfiguratorTest.java | 163 + .../configuration/MappingParsersTest.java | 79 + .../base/ContentIndicationMessageHandlerTest.java | 59 + .../domain/model/BaseDomainModelTestCase.java | 44 + .../model/BaseQpidFeatureBuilderTestCase.java | 96 + .../management/domain/model/DomainModelTest.java | 55 + .../domain/model/OptionalPropertiesTest.java | 187 + .../management/domain/model/QpidClassTest.java | 408 + .../management/domain/model/QpidEventTest.java | 293 + .../domain/model/QpidMethodBuilderTest.java | 147 + .../domain/model/QpidNumberPropertyTest.java | 171 + .../management/domain/model/QpidPackageTest.java | 53 + .../domain/model/QpidPropertyBuilderTest.java | 269 + .../domain/model/QpidStatisticBuilderTest.java | 159 + .../domain/model/QpidStringPropertyTest.java | 127 + .../management/domain/model/type/BinaryTest.java | 59 + .../domain/services/BrokerMessageListenerTest.java | 241 + .../domain/services/MessageTokenizerTest.java | 140 + .../management/wsdm/BaseWsDmAdapterTestCase.java | 143 + .../wsdm/EnhancedReflectionProxyHandler.java | 72 + .../GetMultipleResourcePropertiesTestCase.java | 125 + .../wsdm/GetResourcePropertiesTestCase.java | 105 + .../wsdm/GetResourcePropertyDocumentTestCase.java | 134 + .../wsdm/MetadataExchangeInterfaceTestCase.java | 169 + .../wsdm/OperationInvocationInterfaceTestCase.java | 580 + .../apache/qpid/management/wsdm/ServerThread.java | 118 + .../wsdm/SetResourcePropertiesTestCase.java | 219 + .../wsdm/WebApplicationLifeCycleListener.java | 61 + .../qpid/management/wsdm/WsDmAdapterTest.java | 156 + .../capabilities/MBeanCapabilityBuilderTest.java | 335 + .../wsdm/capabilities/MBeanCapabilityTest.java | 204 + .../capabilities/QManAdapterCapabilityTest.java | 81 + .../wsdm/capabilities/RmdBuilderTest.java | 110 + .../java/org/apache/qpid/management/wsdm/web.xml | 11 + trunk/qpid/java/management/client/web.xml | 128 + trunk/qpid/java/management/common/build.xml | 26 + .../common/src/main/java/management-common.bnd | 8 + .../management/common/JMXConnnectionFactory.java | 284 + .../common/mbeans/ConfigurationManagement.java | 42 + .../common/mbeans/LoggingManagement.java | 160 + .../management/common/mbeans/ManagedBroker.java | 127 + .../common/mbeans/ManagedConnection.java | 143 + .../management/common/mbeans/ManagedExchange.java | 110 + .../management/common/mbeans/ManagedQueue.java | 407 + .../common/mbeans/ServerInformation.java | 84 + .../management/common/mbeans/UserManagement.java | 131 + .../common/mbeans/annotations/MBeanAttribute.java | 41 + .../mbeans/annotations/MBeanConstructor.java | 39 + .../mbeans/annotations/MBeanDescription.java | 38 + .../common/mbeans/annotations/MBeanOperation.java | 43 + .../annotations/MBeanOperationParameter.java | 37 + .../sasl/CRAMMD5HashedSaslClientFactory.java | 60 + .../management/common/sasl/ClientSaslFactory.java | 54 + .../qpid/management/common/sasl/Constants.java | 33 + .../qpid/management/common/sasl/JCAProvider.java | 56 + .../management/common/sasl/PlainSaslClient.java | 203 + .../qpid/management/common/sasl/SaslProvider.java | 35 + .../common/sasl/UserPasswordCallbackHandler.java | 73 + .../UsernameHashedPasswordCallbackHandler.java | 108 + .../management/common/mbeans/ManagedQueueTest.java | 84 + trunk/qpid/java/management/console/build.xml | 27 + .../org/apache/qpid/console/AbstractConsole.java | 81 + .../main/java/org/apache/qpid/console/Agent.java | 116 + .../main/java/org/apache/qpid/console/Broker.java | 505 + .../java/org/apache/qpid/console/ClassKey.java | 146 + .../main/java/org/apache/qpid/console/Console.java | 51 + .../org/apache/qpid/console/ConsoleException.java | 48 + .../org/apache/qpid/console/EventSeverity.java | 37 + .../java/org/apache/qpid/console/MethodResult.java | 88 + .../java/org/apache/qpid/console/ObjectID.java | 93 + .../java/org/apache/qpid/console/QMFEvent.java | 108 + .../java/org/apache/qpid/console/QMFObject.java | 423 + .../org/apache/qpid/console/SchemaArgument.java | 65 + .../java/org/apache/qpid/console/SchemaClass.java | 251 + .../java/org/apache/qpid/console/SchemaMethod.java | 125 + .../org/apache/qpid/console/SchemaProperty.java | 81 + .../org/apache/qpid/console/SchemaStatistic.java | 88 + .../org/apache/qpid/console/SchemaVariable.java | 185 + .../org/apache/qpid/console/SequenceManager.java | 57 + .../main/java/org/apache/qpid/console/Session.java | 980 + .../main/java/org/apache/qpid/console/Util.java | 184 + .../main/java/org/apache/qpid/console/XMLUtil.java | 134 + .../java/org/apache/qpid/console/ClassKeyTest.java | 39 + .../management/eclipse-plugin/META-INF/MANIFEST.MF | 22 + .../eclipse-plugin/build-release-common.properties | 33 + .../build-release-linux-gtk-x86.properties | 36 + .../build-release-linux-gtk-x86_64.properties | 36 + .../eclipse-plugin/build-release-macosx.properties | 40 + .../eclipse-plugin/build-release-macosx.xml | 101 + .../build-release-solaris-gtk-sparc.properties | 39 + .../build-release-win32-win32-x86.properties | 34 + .../management/eclipse-plugin/build-release.xml | 172 + .../qpid/java/management/eclipse-plugin/build.xml | 88 + .../java/management/eclipse-plugin/icons/add.gif | Bin 0 -> 318 bytes .../java/management/eclipse-plugin/icons/back.gif | Bin 0 -> 327 bytes .../icons/configuration_management.gif | Bin 0 -> 343 bytes .../management/eclipse-plugin/icons/delete.gif | Bin 0 -> 143 bytes .../management/eclipse-plugin/icons/failure.gif | Bin 0 -> 353 bytes .../eclipse-plugin/icons/icon_ClosedFolder.gif | Bin 0 -> 160 bytes .../eclipse-plugin/icons/icon_OpenFolder.gif | Bin 0 -> 152 bytes .../eclipse-plugin/icons/logging_management.gif | Bin 0 -> 381 bytes .../management/eclipse-plugin/icons/mbean_view.png | Bin 0 -> 2046 bytes .../eclipse-plugin/icons/notifications.gif | Bin 0 -> 104 bytes .../eclipse-plugin/icons/qpidConnections.gif | Bin 0 -> 200 bytes .../management/eclipse-plugin/icons/qpidmc.gif | Bin 0 -> 1225 bytes .../management/eclipse-plugin/icons/qpidmc16.gif | Bin 0 -> 928 bytes .../management/eclipse-plugin/icons/qpidmc32.bmp | Bin 0 -> 1139 bytes .../management/eclipse-plugin/icons/qpidmc32.gif | Bin 0 -> 1139 bytes .../management/eclipse-plugin/icons/reconnect.gif | Bin 0 -> 327 bytes .../management/eclipse-plugin/icons/refresh.gif | Bin 0 -> 336 bytes .../eclipse-plugin/icons/server_information.gif | Bin 0 -> 614 bytes .../management/eclipse-plugin/icons/splash.bmp | Bin 0 -> 275178 bytes .../java/management/eclipse-plugin/icons/stop.gif | Bin 0 -> 215 bytes .../management/eclipse-plugin/icons/success.gif | Bin 0 -> 343 bytes .../eclipse-plugin/icons/user_management.gif | Bin 0 -> 597 bytes .../eclipse-plugin/icons/virtualhost_manager.gif | Bin 0 -> 607 bytes .../management/eclipse-plugin/plugin.properties | 20 + .../qpid/java/management/eclipse-plugin/plugin.xml | 225 + .../org/apache/qpid/management/ui/Activator.java | 84 + .../org/apache/qpid/management/ui/ApiVersion.java | 110 + .../org/apache/qpid/management/ui/Application.java | 63 + .../management/ui/ApplicationActionBarAdvisor.java | 96 + .../qpid/management/ui/ApplicationRegistry.java | 189 + .../management/ui/ApplicationWorkbenchAdvisor.java | 46 + .../ui/ApplicationWorkbenchWindowAdvisor.java | 65 + .../org/apache/qpid/management/ui/Constants.java | 143 + .../org/apache/qpid/management/ui/ManagedBean.java | 176 + .../apache/qpid/management/ui/ManagedObject.java | 40 + .../apache/qpid/management/ui/ManagedServer.java | 84 + .../org/apache/qpid/management/ui/Perspective.java | 46 + .../management/ui/RefreshIntervalComboPanel.java | 131 + .../apache/qpid/management/ui/ServerRegistry.java | 235 + .../qpid/management/ui/actions/AbstractAction.java | 220 + .../qpid/management/ui/actions/AddServer.java | 313 + .../qpid/management/ui/actions/BackAction.java | 59 + .../management/ui/actions/CloseConnection.java | 56 + .../management/ui/actions/ReconnectServer.java | 264 + .../apache/qpid/management/ui/actions/Refresh.java | 53 + .../qpid/management/ui/actions/RemoveServer.java | 50 + .../qpid/management/ui/actions/VersionAction.java | 94 + .../ui/exceptions/InfoRequiredException.java | 36 + .../ui/exceptions/ManagementConsoleException.java | 31 + .../qpid/management/ui/jmx/ClientListener.java | 82 + .../ui/jmx/ClientNotificationListener.java | 40 + .../qpid/management/ui/jmx/JMXManagedObject.java | 48 + .../qpid/management/ui/jmx/JMXServerRegistry.java | 612 + .../qpid/management/ui/jmx/MBeanUtility.java | 596 + .../qpid/management/ui/model/AttributeData.java | 96 + .../management/ui/model/ManagedAttributeModel.java | 118 + .../management/ui/model/NotificationInfoModel.java | 51 + .../management/ui/model/NotificationObject.java | 113 + .../qpid/management/ui/model/OperationData.java | 110 + .../management/ui/model/OperationDataModel.java | 72 + .../qpid/management/ui/model/ParameterData.java | 95 + .../management/ui/views/AttributesTabControl.java | 918 + .../management/ui/views/INotificationViewer.java | 32 + .../management/ui/views/MBeanTabFolderFactory.java | 464 + .../apache/qpid/management/ui/views/MBeanView.java | 600 + .../qpid/management/ui/views/NavigationView.java | 1371 + .../ui/views/NotificationsTabControl.java | 388 + .../management/ui/views/NumberVerifyListener.java | 46 + .../management/ui/views/OperationTabControl.java | 920 + .../qpid/management/ui/views/TabControl.java | 103 + .../qpid/management/ui/views/TreeObject.java | 126 + .../ui/views/VHNotificationsTabControl.java | 481 + .../qpid/management/ui/views/ViewUtility.java | 1024 + .../connection/ConnectionOperationsTabControl.java | 547 + .../exchange/ExchangeOperationsTabControl.java | 641 + .../HeadersExchangeOperationsTabControl.java | 713 + .../views/logging/ConfigurationFileTabControl.java | 591 + .../views/logging/LoggingTableContentProvider.java | 52 + .../views/logging/LoggingTableLabelProvider.java | 59 + .../ui/views/logging/LoggingTableSorter.java | 90 + .../ui/views/logging/RuntimeTabControl.java | 595 + .../ui/views/queue/QueueOperationsTabControl.java | 1114 + .../ui/views/type/ConnectionTypeTabControl.java | 50 + .../ui/views/type/ExchangeTypeTabControl.java | 45 + .../ui/views/type/MBeanTypeTabControl.java | 458 + .../ui/views/type/QueueTypeTabControl.java | 764 + .../ui/views/users/UserManagementTabControl.java | 915 + .../management/ui/views/vhost/VHostTabControl.java | 871 + .../src/main/resources/.eclipseproduct | 23 + .../resources/jmxremote.sasl-plugin/MANIFEST.MF | 19 + .../linux-gtk-x86/Configuration/config.ini | 49 + .../main/resources/linux-gtk-x86/libcairo-swt.so | Bin 0 -> 266168 bytes .../src/main/resources/linux-gtk-x86/qpidmc | Bin 0 -> 52576 bytes .../src/main/resources/linux-gtk-x86/qpidmc.ini | 37 + .../linux-gtk-x86_64/Configuration/config.ini | 49 + .../resources/linux-gtk-x86_64/libcairo-swt.so | Bin 0 -> 335360 bytes .../src/main/resources/linux-gtk-x86_64/qpidmc | Bin 0 -> 67927 bytes .../src/main/resources/linux-gtk-x86_64/qpidmc.ini | 37 + .../main/resources/macosx/Configuration/config.ini | 49 + .../src/main/resources/macosx/Contents/Info.plist | 35 + .../main/resources/macosx/Contents/MacOS/qpidmc | Bin 0 -> 59200 bytes .../resources/macosx/Contents/MacOS/qpidmc.ini | 42 + .../macosx/Contents/Resources/Console.icns | Bin 0 -> 51007 bytes .../solaris-gtk-sparc/Configuration/config.ini | 49 + .../main/resources/solaris-gtk-sparc/Qpidmc.l.pm | 311 + .../main/resources/solaris-gtk-sparc/Qpidmc.m.pm | 295 + .../main/resources/solaris-gtk-sparc/Qpidmc.s.pm | 287 + .../main/resources/solaris-gtk-sparc/Qpidmc.t.pm | 279 + .../src/main/resources/solaris-gtk-sparc/qpidmc | Bin 0 -> 31668 bytes .../main/resources/solaris-gtk-sparc/qpidmc.ini | 40 + .../win32-win32-x86/Configuration/config.ini | 49 + .../src/main/resources/win32-win32-x86/qpidmc.exe | Bin 0 -> 57344 bytes .../src/main/resources/win32-win32-x86/qpidmc.ini | 36 + .../apache/qpid/management/ui/ApiVersionTest.java | 177 + .../management/ui/ApplicationRegistryTest.java | 43 + .../qpid/management/ui/ManagementConsoleTest.java | 127 + .../qpid/java/management/tools/qpid-cli/Guide.txt | 143 + trunk/qpid/java/management/tools/qpid-cli/LICENSE | 225 + trunk/qpid/java/management/tools/qpid-cli/NOTICE | 12 + trunk/qpid/java/management/tools/qpid-cli/README | 64 + .../java/management/tools/qpid-cli/bin/qpid-cli | 35 + .../management/tools/qpid-cli/bin/qpid-cli.bat | 28 + .../qpid/java/management/tools/qpid-cli/build.xml | 31 + .../java/management/tools/qpid-cli/report.property | 26 + .../qpid-cli/src/org/apache/qpid/Command.java | 33 + .../org/apache/qpid/CommandExecutionEngine.java | 76 + .../org/apache/qpid/CommandLineInterpreter.java | 263 + .../qpid-cli/src/org/apache/qpid/Connector.java | 49 + .../src/org/apache/qpid/ConnectorFactory.java | 50 + .../src/org/apache/qpid/ReportGenerator.java | 195 + .../src/org/apache/qpid/commands/CommandImpl.java | 153 + .../org/apache/qpid/commands/Commanddelete.java | 199 + .../src/org/apache/qpid/commands/Commandget.java | 211 + .../src/org/apache/qpid/commands/Commandhelp.java | 56 + .../src/org/apache/qpid/commands/Commandinfo.java | 206 + .../src/org/apache/qpid/commands/Commandlist.java | 232 + .../src/org/apache/qpid/commands/Commandmove.java | 259 + .../src/org/apache/qpid/commands/Commandset.java | 260 + .../src/org/apache/qpid/commands/Commandview.java | 257 + .../apache/qpid/commands/Commandviewcontent.java | 250 + .../apache/qpid/commands/objects/AllObjects.java | 38 + .../qpid/commands/objects/ConnectionObject.java | 46 + .../qpid/commands/objects/ExchangeObject.java | 45 + .../apache/qpid/commands/objects/ObjectNames.java | 591 + .../apache/qpid/commands/objects/QueueObject.java | 67 + .../commands/objects/UserManagementObject.java | 38 + .../qpid/commands/objects/VirtualHostObject.java | 47 + .../org/apache/qpid/utils/CommandLineOption.java | 104 + .../qpid/utils/CommandLineOptionConstants.java | 37 + .../apache/qpid/utils/CommandLineOptionParser.java | 231 + .../org/apache/qpid/utils/JMXConfigProperty.java | 29 + .../org/apache/qpid/utils/JMXConfiguration.java | 182 + .../src/org/apache/qpid/utils/JMXinfo.java | 53 + .../qpid-cli/test/org/apache/qpid/AllTest.java | 41 + .../test/org/apache/qpid/ConnectionConstants.java | 30 + .../apache/qpid/TestCommandExecutionEngine.java | 73 + .../apache/qpid/TestCommandLineInterpreter.java | 80 + .../test/org/apache/qpid/TestConnector.java | 79 + .../test/org/apache/qpid/TestReportGenerator.java | 26 + .../test/org/apache/qpid/commands/TestCommand.java | 79 + .../apache/qpid/commands/TestCommanddelete.java | 79 + .../org/apache/qpid/commands/TestCommandinfo.java | 77 + .../org/apache/qpid/commands/TestCommandlist.java | 82 + .../org/apache/qpid/commands/TestCommandmove.java | 80 + .../org/apache/qpid/commands/TestCommandview.java | 78 + .../qpid/commands/TestCommandviewcontent.java | 78 + .../qpid/commands/objects/TestAllObject.java | 69 + .../commands/objects/TestConnectionObject.java | 83 + .../qpid/commands/objects/TestExchangeObject.java | 83 + .../qpid/commands/objects/TestObjectNames.java | 26 + .../qpid/commands/objects/TestQueueObject.java | 83 + .../commands/objects/TestUserManagementObject.java | 74 + .../commands/objects/TestVirtualHostObject.java | 84 + .../apache/qpid/utils/TestCommandLineOption.java | 64 + .../qpid/utils/TestCommandLineOptionParser.java | 79 + .../apache/qpid/utils/TestJMXConfigProperty.java | 26 + .../apache/qpid/utils/TestJMXConfiguration.java | 64 + .../test/org/apache/qpid/utils/TestJMXinfo.java | 30 + trunk/qpid/java/module.xml | 623 + .../java/perftests/RunningPerformanceTests.txt | 141 + .../perftests/bin/monitoring/monitor-broker.sh | 200 + .../qpid/java/perftests/bin/monitoring/runTests.sh | 127 + .../bin/monitoring/stop-monitored-broker.sh | 103 + .../qpid/java/perftests/bin/processing/process.sh | 264 + .../java/perftests/bin/processing/processAll.sh | 33 + .../java/perftests/bin/processing/processTests.py | 567 + trunk/qpid/java/perftests/bin/run_many.sh | 30 + trunk/qpid/java/perftests/bin/topicListener.sh | 32 + trunk/qpid/java/perftests/bin/topicPublisher.sh | 31 + trunk/qpid/java/perftests/build.xml | 329 + trunk/qpid/java/perftests/dist-zip.xml | 45 + .../java/perftests/etc/jndi/activemq.properties | 20 + .../perftests/etc/jndi/failovertest.properties | 19 + .../java/perftests/etc/jndi/perftests.properties | 19 + .../java/perftests/etc/jndi/swiftmq.properties | 20 + trunk/qpid/java/perftests/etc/perftests.log4j | 46 + .../qpid/java/perftests/etc/scripts/CTQ-Qpid-1.sh | 21 + .../qpid/java/perftests/etc/scripts/CTQ-Qpid-2.sh | 21 + .../qpid/java/perftests/etc/scripts/CTQ-Qpid-3.sh | 21 + .../qpid/java/perftests/etc/scripts/CTQ-Qpid-4.sh | 21 + .../qpid/java/perftests/etc/scripts/CTQ-Qpid-5.sh | 21 + .../qpid/java/perftests/etc/scripts/CTQ-Qpid-6.sh | 21 + .../qpid/java/perftests/etc/scripts/Connections.sh | 20 + trunk/qpid/java/perftests/etc/scripts/JobQueue.sh | 20 + trunk/qpid/java/perftests/etc/scripts/Latency.sh | 21 + .../qpid/java/perftests/etc/scripts/MessageSize.sh | 20 + .../qpid/java/perftests/etc/scripts/PT-Qpid-13.sh | 42 + .../qpid/java/perftests/etc/scripts/PT-Qpid-14.sh | 41 + .../qpid/java/perftests/etc/scripts/Reliability.sh | 20 + trunk/qpid/java/perftests/etc/scripts/RunAll.sh | 23 + trunk/qpid/java/perftests/etc/scripts/RunCore.sh | 22 + .../java/perftests/etc/scripts/Test-ActiveMQ.sh | 32 + .../java/perftests/etc/scripts/Test-SwiftMQ.sh | 30 + .../qpid/java/perftests/etc/scripts/Throughput.sh | 20 + .../java/perftests/etc/scripts/extractResults.sh | 13 + .../etc/scripts/extractThroughputResults.sh | 30 + .../perftests/etc/scripts/sendAndWaitClient.sh | 22 + trunk/qpid/java/perftests/generate-scripts | 74 + .../qpid/java/perftests/jar-with-dependencies.xml | 91 + trunk/qpid/java/perftests/scripts.xml | 328 + .../qpid/client/message/TestMessageFactory.java | 120 + .../config/AMQConnectionFactoryInitialiser.java | 35 + .../org/apache/qpid/config/AbstractConfig.java | 69 + .../qpid/config/ConnectionFactoryInitialiser.java | 29 + .../java/org/apache/qpid/config/Connector.java | 40 + .../org/apache/qpid/config/ConnectorConfig.java | 28 + .../config/JBossConnectionFactoryInitialiser.java | 112 + .../main/java/org/apache/qpid/oldtopic/Config.java | 243 + .../java/org/apache/qpid/oldtopic/Listener.java | 141 + .../org/apache/qpid/oldtopic/MessageFactory.java | 153 + .../java/org/apache/qpid/oldtopic/Publisher.java | 175 + .../org/apache/qpid/ping/PingAsyncTestPerf.java | 292 + .../main/java/org/apache/qpid/ping/PingClient.java | 107 + .../org/apache/qpid/ping/PingDurableClient.java | 452 + .../org/apache/qpid/ping/PingLatencyTestPerf.java | 311 + .../org/apache/qpid/ping/PingSendOnlyClient.java | 93 + .../java/org/apache/qpid/ping/PingTestPerf.java | 196 + .../apache/qpid/requestreply/PingPongBouncer.java | 453 + .../apache/qpid/requestreply/PingPongProducer.java | 1718 ++ .../apache/qpid/requestreply/PingPongTestPerf.java | 251 + .../qpid/test/testcases/MessageThroughputPerf.java | 199 + .../main/java/org/apache/qpid/topic/Config.java | 326 + .../main/java/org/apache/qpid/topic/Listener.java | 303 + .../java/org/apache/qpid/topic/MessageFactory.java | 157 + .../main/java/org/apache/qpid/topic/Publisher.java | 186 + trunk/qpid/java/release-docs/RELEASE_NOTES.txt | 35 + trunk/qpid/java/resources/LICENSE | 826 + trunk/qpid/java/resources/NOTICE | 113 + trunk/qpid/java/resources/README | 40 + trunk/qpid/java/systests/build.xml | 30 + trunk/qpid/java/systests/etc/bin/fail.py | 88 + trunk/qpid/java/systests/etc/bin/testclients.sh | 23 + ...config-systests-ServerConfigurationTest-New.xml | 93 + ...config-systests-ServerConfigurationTest-Old.xml | 72 + .../systests/etc/config-systests-acl-settings.xml | 160 + .../qpid/java/systests/etc/config-systests-acl.xml | 30 + .../etc/config-systests-derby-settings.xml | 64 + .../java/systests/etc/config-systests-derby.xml | 30 + .../systests/etc/config-systests-firewall-2.xml | 137 + .../systests/etc/config-systests-firewall-3.xml | 137 + .../etc/config-systests-firewall-settings.xml | 28 + .../java/systests/etc/config-systests-firewall.xml | 30 + .../java/systests/etc/config-systests-settings.xml | 29 + trunk/qpid/java/systests/etc/config-systests.xml | 29 + .../virtualhosts-ServerConfigurationTest-New.xml | 40 + .../vmpipe/support/VmPipeIdleStatusChecker.java | 125 + .../qpid/client/AMQQueueDeferredOrderingTest.java | 145 + .../org/apache/qpid/client/DispatcherTest.java | 242 + ...sageListenerMultiConsumerImmediatePrefetch.java | 44 + .../client/MessageListenerMultiConsumerTest.java | 253 + .../apache/qpid/client/MessageListenerTest.java | 187 + .../MultipleJCAProviderRegistrationTest.java | 82 + .../qpid/client/ResetMessageListenerTest.java | 229 + .../org/apache/qpid/client/SessionCreateTest.java | 63 + .../qpid/client/message/NonQpidObjectMessage.java | 236 + .../management/jmx/ManagementActorLoggingTest.java | 530 + .../org/apache/qpid/server/BrokerStartupTest.java | 149 + .../configuration/ServerConfigurationFileTest.java | 87 + .../exchange/MessagingTestConfigProperties.java | 308 + .../ReturnUnroutableMandatoryMessageTest.java | 309 + .../qpid/server/failover/FailoverMethodTest.java | 236 + .../MessageDisappearWithIOExceptionTest.java | 338 + .../apache/qpid/server/failure/HeapExhaustion.java | 236 + .../qpid/server/logging/AbstractTestLogging.java | 320 + .../apache/qpid/server/logging/AlertingTest.java | 209 + .../qpid/server/logging/BindingLoggingTest.java | 279 + .../qpid/server/logging/BrokerLoggingTest.java | 1015 + .../qpid/server/logging/ChannelLoggingTest.java | 301 + .../qpid/server/logging/ConnectionLoggingTest.java | 182 + .../logging/DerbyMessageStoreLoggingTest.java | 567 + .../server/logging/DurableQueueLoggingTest.java | 357 + .../qpid/server/logging/ExchangeLoggingTest.java | 203 + .../qpid/server/logging/ManagementLoggingTest.java | 327 + .../logging/MemoryMessageStoreLoggingTest.java | 192 + .../qpid/server/logging/QueueLoggingTest.java | 171 + .../server/logging/SubscriptionLoggingTest.java | 438 + .../server/logging/TransientQueueLoggingTest.java | 30 + .../server/logging/VirtualHostLoggingTest.java | 139 + .../persistent/NoLocalAfterRecoveryTest.java | 246 + .../server/queue/DeepQueueConsumeWithSelector.java | 159 + .../org/apache/qpid/server/queue/ModelTest.java | 299 + .../qpid/server/queue/PersistentTestManual.java | 276 + .../org/apache/qpid/server/queue/PriorityTest.java | 212 + .../qpid/server/queue/ProducerFlowControlTest.java | 498 + .../server/queue/QueueDepthWithSelectorTest.java | 259 + .../qpid/server/queue/SubscriptionTestHelper.java | 289 + .../apache/qpid/server/queue/TimeToLiveTest.java | 193 + .../qpid/server/security/acl/SimpleACLTest.java | 924 + .../security/firewall/FirewallConfigTest.java | 246 + .../qpid/server/store/PersistentStoreTest.java | 183 + .../apache/qpid/server/store/SlowMessageStore.java | 313 + .../org/apache/qpid/server/util/AveragedRun.java | 66 + .../java/org/apache/qpid/server/util/RunStats.java | 57 + .../java/org/apache/qpid/server/util/TimedRun.java | 52 + .../org/apache/qpid/test/client/CancelTest.java | 100 + .../org/apache/qpid/test/client/DupsOkTest.java | 168 + .../apache/qpid/test/client/FlowControlTest.java | 213 + .../qpid/test/client/QueueBrowserAutoAckTest.java | 540 + .../test/client/QueueBrowserClientAckTest.java | 34 + .../qpid/test/client/QueueBrowserDupsOkTest.java | 31 + .../qpid/test/client/QueueBrowserNoAckTest.java | 33 + .../qpid/test/client/QueueBrowserPreAckTest.java | 32 + .../test/client/QueueBrowserTransactedTest.java | 31 + .../apache/qpid/test/client/RollbackOrderTest.java | 194 + .../qpid/test/client/failover/FailoverTest.java | 389 + .../test/client/message/JMSDestinationTest.java | 330 + .../test/client/message/MessageToStringTest.java | 257 + .../test/client/message/ObjectMessageTest.java | 141 + .../qpid/test/client/message/SelectorTest.java | 310 + .../test/client/timeouts/SyncWaitDelayTest.java | 112 + .../client/timeouts/SyncWaitTimeoutDelayTest.java | 72 + .../apache/qpid/test/framework/AMQPPublisher.java | 54 + .../org/apache/qpid/test/framework/Assertion.java | 39 + .../apache/qpid/test/framework/AssertionBase.java | 66 + .../qpid/test/framework/BrokerLifecycleAware.java | 70 + .../apache/qpid/test/framework/CauseFailure.java | 42 + .../test/framework/CauseFailureUserPrompt.java | 65 + .../org/apache/qpid/test/framework/Circuit.java | 109 + .../org/apache/qpid/test/framework/CircuitEnd.java | 91 + .../apache/qpid/test/framework/CircuitEndBase.java | 152 + .../org/apache/qpid/test/framework/DropInTest.java | 51 + .../qpid/test/framework/ExceptionMonitor.java | 205 + .../qpid/test/framework/FrameworkBaseCase.java | 286 + .../test/framework/FrameworkClientBaseCase.java | 31 + .../qpid/test/framework/FrameworkTestContext.java | 48 + .../test/framework/LocalAMQPCircuitFactory.java | 168 + .../qpid/test/framework/LocalCircuitFactory.java | 316 + .../qpid/test/framework/MessageIdentityVector.java | 167 + .../apache/qpid/test/framework/MessageMonitor.java | 105 + .../framework/MessagingTestConfigProperties.java | 685 + .../test/framework/NotApplicableAssertion.java | 112 + .../org/apache/qpid/test/framework/Publisher.java | 74 + .../org/apache/qpid/test/framework/Receiver.java | 92 + .../apache/qpid/test/framework/TestCaseVector.java | 88 + .../qpid/test/framework/TestClientDetails.java | 86 + .../org/apache/qpid/test/framework/TestUtils.java | 192 + .../clocksynch/ClockSynchFailureException.java | 45 + .../framework/clocksynch/ClockSynchThread.java | 124 + .../framework/clocksynch/ClockSynchronizer.java | 69 + .../clocksynch/LocalClockSynchronizer.java | 73 + .../framework/clocksynch/UDPClockReference.java | 165 + .../framework/clocksynch/UDPClockSynchronizer.java | 463 + .../distributedcircuit/DistributedCircuitImpl.java | 469 + .../DistributedPublisherImpl.java | 95 + .../DistributedReceiverImpl.java | 95 + .../distributedcircuit/TestClientCircuitEnd.java | 324 + .../framework/distributedtesting/Coordinator.java | 539 + .../DistributedTestDecorator.java | 166 + .../distributedtesting/FanOutTestDecorator.java | 244 + .../distributedtesting/InteropTestDecorator.java | 209 + .../distributedtesting/OptOutTestCase.java | 69 + .../framework/distributedtesting/TestClient.java | 497 + .../TestClientControlledTest.java | 108 + .../test/framework/listeners/XMLTestListener.java | 399 + .../localcircuit/LocalAMQPPublisherImpl.java | 133 + .../framework/localcircuit/LocalCircuitImpl.java | 306 + .../framework/localcircuit/LocalPublisherImpl.java | 170 + .../framework/localcircuit/LocalReceiverImpl.java | 144 + .../org/apache/qpid/test/framework/package.html | 43 + .../test/framework/qpid/AMQPFeatureDecorator.java | 96 + .../test/framework/qpid/CauseFailureDecorator.java | 95 + .../qpid/test/framework/qpid/CauseFailureInVM.java | 70 + .../test/framework/qpid/InVMBrokerDecorator.java | 136 + .../framework/sequencers/BaseCircuitFactory.java | 136 + .../test/framework/sequencers/CircuitFactory.java | 102 + .../framework/sequencers/FanOutCircuitFactory.java | 198 + .../sequencers/InteropCircuitFactory.java | 152 + .../apache/qpid/test/testcases/FailoverTest.java | 119 + .../qpid/test/testcases/ImmediateMessageTest.java | 303 + .../qpid/test/testcases/MandatoryMessageTest.java | 321 + .../apache/qpid/test/testcases/RollbackTest.java | 132 + .../org/apache/qpid/test/testcases/TTLTest.java | 151 + .../test/unit/ack/Acknowledge2ConsumersTest.java | 193 + .../ack/AcknowledgeAfterFailoverOnMessageTest.java | 356 + .../unit/ack/AcknowledgeAfterFailoverTest.java | 306 + .../test/unit/ack/AcknowledgeOnMessageTest.java | 181 + .../apache/qpid/test/unit/ack/AcknowledgeTest.java | 156 + .../ack/FailoverBeforeConsumingRecoverTest.java | 40 + .../org/apache/qpid/test/unit/ack/QuickAcking.java | 148 + .../org/apache/qpid/test/unit/ack/RecoverTest.java | 306 + .../qpid/test/unit/basic/BytesMessageTest.java | 284 + .../test/unit/basic/FieldTableMessageTest.java | 163 + .../test/unit/basic/InvalidDestinationTest.java | 104 + .../qpid/test/unit/basic/LargeMessageTest.java | 190 + .../qpid/test/unit/basic/MapMessageTest.java | 1271 + .../test/unit/basic/MultipleConnectionTest.java | 218 + .../qpid/test/unit/basic/ObjectMessageTest.java | 278 + .../qpid/test/unit/basic/PropertyValueTest.java | 408 + .../test/unit/basic/PubSubTwoConnectionTest.java | 75 + .../apache/qpid/test/unit/basic/ReceiveTest.java | 82 + .../qpid/test/unit/basic/SessionStartTest.java | 115 + .../qpid/test/unit/basic/TextMessageTest.java | 248 + .../qpid/test/unit/basic/close/CloseTest.java | 58 + .../qpid/test/unit/client/AMQConnectionTest.java | 270 + .../qpid/test/unit/client/AMQSessionTest.java | 110 + .../client/DynamicQueueExchangeCreateTest.java | 88 + .../client/channelclose/ChannelCloseOkTest.java | 239 + .../unit/client/channelclose/ChannelCloseTest.java | 406 + .../channelclose/CloseWithBlockingReceiveTest.java | 81 + .../CloseAfterConnectionFailureTest.java | 124 + .../client/connection/ConnectionCloseTest.java | 108 + .../client/connection/ConnectionStartTest.java | 158 + .../unit/client/connection/ConnectionTest.java | 276 + .../client/connection/ExceptionListenerTest.java | 62 + .../qpid/test/unit/client/forwardall/Client.java | 143 + .../test/unit/client/forwardall/CombinedTest.java | 69 + .../qpid/test/unit/client/forwardall/Service.java | 95 + .../unit/client/forwardall/ServiceCreator.java | 112 + .../test/unit/client/forwardall/SpecialQueue.java | 46 + .../unit/client/message/ObjectMessageTest.java | 335 + .../client/protocol/AMQProtocolSessionTest.java | 123 + .../client/temporaryqueue/TemporaryQueueTest.java | 258 + .../qpid/test/unit/close/CloseBeforeAckTest.java | 142 + .../close/JavaServerCloseRaceConditionTest.java | 119 + .../qpid/test/unit/close/MessageRequeueTest.java | 373 + .../test/unit/close/TopicPublisherCloseTest.java | 69 + .../test/unit/close/VerifyAckingOkDuringClose.java | 160 + .../qpid/test/unit/ct/DurableSubscriberTest.java | 167 + .../qpid/test/unit/message/JMSPropertiesTest.java | 137 + .../qpid/test/unit/message/StreamMessageTest.java | 161 + .../java/org/apache/qpid/test/unit/message/UTF8En | 4 + .../java/org/apache/qpid/test/unit/message/UTF8Jp | 4 + .../apache/qpid/test/unit/message/UTF8Test.java | 122 + .../unit/publish/DirtyTrasactedPubilshTest.java | 403 + .../test/unit/topic/DurableSubscriptionTest.java | 444 + .../qpid/test/unit/topic/TopicPublisherTest.java | 76 + .../qpid/test/unit/topic/TopicSessionTest.java | 452 + .../test/unit/transacted/CommitRollbackTest.java | 572 + .../qpid/test/unit/transacted/TransactedTest.java | 348 + .../qpid/test/unit/xa/AbstractXATestCase.java | 132 + .../org/apache/qpid/test/unit/xa/FaultTest.java | 385 + .../org/apache/qpid/test/unit/xa/QueueTest.java | 657 + .../org/apache/qpid/test/unit/xa/TopicTest.java | 1711 ++ .../qpid/test/utils/ConversationFactory.java | 480 + .../apache/qpid/test/utils/FailoverBaseCase.java | 118 + .../org/apache/qpid/test/utils/JMXTestUtils.java | 212 + .../qpid/test/utils/QpidClientConnection.java | 289 + .../test/utils/QpidClientConnectionHelper.java | 295 + .../org/apache/qpid/test/utils/QpidTestCase.java | 1275 + .../apache/qpid/test/utils/ReflectionUtils.java | 228 + .../qpid/test/utils/ReflectionUtilsException.java | 44 + .../qpid/test/utils/protocol/TestIoSession.java | 104 + .../org/apache/qpid/util/ClasspathScanner.java | 234 + .../main/java/org/apache/qpid/util/LogMonitor.java | 211 + .../java/org/apache/qpid/util/LogMonitorTest.java | 275 + .../java/systests/src/main/java/systests.log4j | 28 + .../exchange/HeadersExchangePerformanceTest.java | 184 + .../server/protocol/TestProtocolInitiation.java | 266 + .../qpid/server/queue/QueueConcurrentPerfTest.java | 49 + .../apache/qpid/server/queue/QueuePerfTest.java | 258 + .../org/apache/qpid/server/queue/SendPerfTest.java | 181 + .../apache/qpid/server/util/ConcurrentTest.java | 79 + .../test/unit/ack/DisconnectAndRedeliverTest.java | 215 + .../tasks/src/org/apache/qpid/tasks/BaseTask.java | 74 + .../tasks/src/org/apache/qpid/tasks/Foreach.java | 84 + .../java/tasks/src/org/apache/qpid/tasks/Map.java | 94 + .../tasks/src/org/apache/qpid/tasks/Require.java | 80 + trunk/qpid/java/test-profiles/08StandaloneExcludes | 6 + trunk/qpid/java/test-profiles/CPPExcludes | 111 + trunk/qpid/java/test-profiles/CPPPrefetchExcludes | 4 + trunk/qpid/java/test-profiles/CPPTransientExcludes | 10 + trunk/qpid/java/test-profiles/Excludes | 38 + trunk/qpid/java/test-profiles/JavaExcludes | 20 + trunk/qpid/java/test-profiles/JavaInVMExcludes | 9 + .../qpid/java/test-profiles/JavaStandaloneExcludes | 44 + .../qpid/java/test-profiles/JavaTransientExcludes | 1 + trunk/qpid/java/test-profiles/XAExcludes | 3 + trunk/qpid/java/test-profiles/clean-dir | 25 + trunk/qpid/java/test-profiles/cpp.async.excludes | 5 + .../qpid/java/test-profiles/cpp.async.testprofile | 3 + .../java/test-profiles/cpp.cluster.testprofile | 10 + trunk/qpid/java/test-profiles/cpp.excludes | 10 + .../java/test-profiles/cpp.noprefetch.testprofile | 3 + trunk/qpid/java/test-profiles/cpp.ssl.excludes | 1 + trunk/qpid/java/test-profiles/cpp.ssl.testprofile | 11 + trunk/qpid/java/test-profiles/cpp.testprofile | 19 + trunk/qpid/java/test-profiles/default.testprofile | 39 + .../qpid/java/test-profiles/java-derby.testprofile | 8 + .../qpid/java/test-profiles/java.0.10.testprofile | 8 + trunk/qpid/java/test-profiles/java.testprofile | 7 + trunk/qpid/java/test-profiles/log4j-test.xml | 58 + .../java/test-profiles/test-provider.properties | 51 + .../test-profiles/test_resources/ssl/certstore.jks | Bin 0 -> 498 bytes .../test-profiles/test_resources/ssl/keystore.jks | Bin 0 -> 2186 bytes .../java/test-profiles/test_resources/ssl/pfile | 1 + .../test_resources/ssl/server_db/cert8.db | Bin 0 -> 65536 bytes .../test_resources/ssl/server_db/key3.db | Bin 0 -> 16384 bytes .../test_resources/ssl/server_db/secmod.db | Bin 0 -> 16384 bytes .../test_resources/ssl/server_db/server.crt | 12 + .../test_resources/ssl/server_db/server.req | 20 + trunk/qpid/java/testkit/README | 153 + trunk/qpid/java/testkit/bin/qpid-python-testkit | 30 + trunk/qpid/java/testkit/bin/run_soak_client.sh | 70 + trunk/qpid/java/testkit/bin/setenv.sh | 78 + trunk/qpid/java/testkit/bin/soak_report.sh | 161 + trunk/qpid/java/testkit/build.xml | 27 + trunk/qpid/java/testkit/etc/jndi.properties | 35 + trunk/qpid/java/testkit/etc/test.log4j | 28 + .../main/java/org/apache/qpid/testkit/Client.java | 90 + .../java/org/apache/qpid/testkit/ErrorHandler.java | 6 + .../java/org/apache/qpid/testkit/Receiver.java | 225 + .../main/java/org/apache/qpid/testkit/Sender.java | 195 + .../java/org/apache/qpid/testkit/TestLauncher.java | 384 + .../apache/qpid/testkit/soak/ResourceLeakTest.java | 180 + trunk/qpid/java/testkit/testkit.py | 216 + trunk/qpid/java/tools/bin/perf_report.sh | 131 + trunk/qpid/java/tools/bin/qpid-bench | 35 + trunk/qpid/java/tools/bin/run_pub.sh | 24 + trunk/qpid/java/tools/bin/run_sub.sh | 25 + trunk/qpid/java/tools/bin/setenv.sh | 49 + trunk/qpid/java/tools/build.xml | 27 + .../main/java/org/apache/qpid/tools/JNDICheck.java | 200 + .../java/org/apache/qpid/tools/LatencyTest.java | 349 + .../java/org/apache/qpid/tools/MessageFactory.java | 64 + .../main/java/org/apache/qpid/tools/PerfBase.java | 102 + .../java/org/apache/qpid/tools/PerfConsumer.java | 267 + .../java/org/apache/qpid/tools/PerfProducer.java | 262 + .../main/java/org/apache/qpid/tools/QpidBench.java | 904 + .../java/org/apache/qpid/tools/TestParams.java | 168 + trunk/qpid/python/LICENSE.txt | 203 + trunk/qpid/python/Makefile | 98 + trunk/qpid/python/NOTICE.txt | 20 + trunk/qpid/python/README.txt | 50 + trunk/qpid/python/RELEASE_NOTES | 17 + trunk/qpid/python/commands/qpid-cluster | 328 + trunk/qpid/python/commands/qpid-config | 495 + trunk/qpid/python/commands/qpid-printevents | 74 + trunk/qpid/python/commands/qpid-queue-stats | 146 + trunk/qpid/python/commands/qpid-route | 524 + trunk/qpid/python/commands/qpid-stat | 460 + trunk/qpid/python/commands/qpid-tool | 197 + trunk/qpid/python/doc/test-requirements.txt | 29 + trunk/qpid/python/examples/README | 319 + trunk/qpid/python/examples/api/drain | 62 + trunk/qpid/python/examples/api/server | 87 + trunk/qpid/python/examples/api/spout | 103 + trunk/qpid/python/examples/datatypes/client.py | 122 + trunk/qpid/python/examples/datatypes/server.py | 124 + trunk/qpid/python/examples/datatypes/testdata.py | 180 + .../qpid/python/examples/direct/declare_queues.py | 76 + .../qpid/python/examples/direct/direct_consumer.py | 94 + .../qpid/python/examples/direct/direct_producer.py | 73 + trunk/qpid/python/examples/direct/listener.py | 109 + trunk/qpid/python/examples/direct/verify | 22 + trunk/qpid/python/examples/direct/verify.in | 14 + .../qpid/python/examples/fanout/fanout_consumer.py | 99 + .../qpid/python/examples/fanout/fanout_producer.py | 72 + trunk/qpid/python/examples/fanout/listener.py | 117 + trunk/qpid/python/examples/fanout/verify | 24 + trunk/qpid/python/examples/fanout/verify.in | 27 + .../qpid/python/examples/headers/declare_queues.py | 77 + .../python/examples/headers/headers_consumer.py | 107 + .../python/examples/headers/headers_producer.py | 79 + trunk/qpid/python/examples/headers/verify | 22 + trunk/qpid/python/examples/headers/verify.in | 25 + .../qpid/python/examples/pubsub/topic_publisher.py | 92 + .../python/examples/pubsub/topic_subscriber.py | 154 + trunk/qpid/python/examples/pubsub/verify | 23 + trunk/qpid/python/examples/pubsub/verify.in | 55 + .../python/examples/request-response/client.py | 131 + .../python/examples/request-response/server.py | 110 + trunk/qpid/python/examples/request-response/verify | 24 + .../python/examples/request-response/verify.in | 14 + .../python/examples/xml-exchange/declare_queues.py | 90 + .../qpid/python/examples/xml-exchange/listener.py | 105 + trunk/qpid/python/examples/xml-exchange/verify | 22 + trunk/qpid/python/examples/xml-exchange/verify.in | 15 + .../python/examples/xml-exchange/xml_consumer.py | 96 + .../python/examples/xml-exchange/xml_producer.py | 92 + trunk/qpid/python/hello-world | 64 + trunk/qpid/python/mllib/__init__.py | 85 + trunk/qpid/python/mllib/dom.py | 310 + trunk/qpid/python/mllib/parsers.py | 139 + trunk/qpid/python/mllib/transforms.py | 164 + trunk/qpid/python/models/fedsim/__init__.py | 19 + trunk/qpid/python/models/fedsim/fedsim.py | 434 + trunk/qpid/python/models/fedsim/testBig.py | 88 + trunk/qpid/python/models/fedsim/testRing.py | 48 + trunk/qpid/python/models/fedsim/testStar.py | 65 + trunk/qpid/python/models/fedsim/testStarAdd.py | 56 + trunk/qpid/python/preppy | 67 + trunk/qpid/python/qmf/__init__.py | 18 + trunk/qpid/python/qmf/console.py | 1970 ++ trunk/qpid/python/qpid-python-test | 575 + trunk/qpid/python/qpid/__init__.py | 84 + trunk/qpid/python/qpid/address.py | 161 + trunk/qpid/python/qpid/brokertest.py | 480 + trunk/qpid/python/qpid/client.py | 222 + trunk/qpid/python/qpid/codec.py | 590 + trunk/qpid/python/qpid/codec010.py | 383 + trunk/qpid/python/qpid/compat.py | 122 + trunk/qpid/python/qpid/concurrency.py | 100 + trunk/qpid/python/qpid/connection.py | 225 + trunk/qpid/python/qpid/connection08.py | 506 + trunk/qpid/python/qpid/content.py | 58 + trunk/qpid/python/qpid/datatypes.py | 375 + trunk/qpid/python/qpid/debug.py | 55 + trunk/qpid/python/qpid/delegate.py | 53 + trunk/qpid/python/qpid/delegates.py | 246 + trunk/qpid/python/qpid/disp.py | 234 + trunk/qpid/python/qpid/driver.py | 859 + trunk/qpid/python/qpid/exceptions.py | 22 + trunk/qpid/python/qpid/framer.py | 124 + trunk/qpid/python/qpid/framing.py | 310 + trunk/qpid/python/qpid/generator.py | 56 + trunk/qpid/python/qpid/harness.py | 20 + trunk/qpid/python/qpid/lexer.py | 112 + trunk/qpid/python/qpid/log.py | 28 + trunk/qpid/python/qpid/management.py | 917 + trunk/qpid/python/qpid/managementdata.py | 773 + trunk/qpid/python/qpid/message.py | 73 + trunk/qpid/python/qpid/messaging.py | 822 + trunk/qpid/python/qpid/mimetype.py | 106 + trunk/qpid/python/qpid/ops.py | 280 + trunk/qpid/python/qpid/packer.py | 36 + trunk/qpid/python/qpid/parser.py | 68 + trunk/qpid/python/qpid/peer.py | 467 + trunk/qpid/python/qpid/queue.py | 88 + trunk/qpid/python/qpid/reference.py | 117 + trunk/qpid/python/qpid/selector.py | 139 + trunk/qpid/python/qpid/session.py | 309 + trunk/qpid/python/qpid/spec.py | 61 + trunk/qpid/python/qpid/spec08.py | 504 + trunk/qpid/python/qpid/testlib.py | 226 + trunk/qpid/python/qpid/tests/__init__.py | 28 + trunk/qpid/python/qpid/tests/address.py | 199 + trunk/qpid/python/qpid/tests/framing.py | 289 + trunk/qpid/python/qpid/tests/messaging.py | 929 + trunk/qpid/python/qpid/tests/mimetype.py | 56 + trunk/qpid/python/qpid/tests/parser.py | 37 + trunk/qpid/python/qpid/util.py | 142 + trunk/qpid/python/qpid_config.py | 25 + trunk/qpid/python/server | 80 + trunk/qpid/python/server010 | 72 + trunk/qpid/python/setup.py | 25 + trunk/qpid/python/tests/__init__.py | 22 + trunk/qpid/python/tests/codec.py | 601 + trunk/qpid/python/tests/codec010.py | 133 + trunk/qpid/python/tests/connection.py | 222 + trunk/qpid/python/tests/datatypes.py | 296 + trunk/qpid/python/tests/queue.py | 71 + trunk/qpid/python/tests/spec010.py | 74 + trunk/qpid/python/tests_0-10/__init__.py | 31 + trunk/qpid/python/tests_0-10/alternate_exchange.py | 204 + trunk/qpid/python/tests_0-10/broker.py | 93 + trunk/qpid/python/tests_0-10/dtx.py | 775 + trunk/qpid/python/tests_0-10/example.py | 95 + trunk/qpid/python/tests_0-10/exchange.py | 457 + trunk/qpid/python/tests_0-10/management.py | 398 + trunk/qpid/python/tests_0-10/message.py | 918 + trunk/qpid/python/tests_0-10/persistence.py | 68 + trunk/qpid/python/tests_0-10/query.py | 247 + trunk/qpid/python/tests_0-10/queue.py | 366 + trunk/qpid/python/tests_0-10/tx.py | 265 + trunk/qpid/python/tests_0-8/__init__.py | 22 + trunk/qpid/python/tests_0-8/basic.py | 396 + trunk/qpid/python/tests_0-8/broker.py | 120 + trunk/qpid/python/tests_0-8/example.py | 94 + trunk/qpid/python/tests_0-8/exchange.py | 327 + trunk/qpid/python/tests_0-8/queue.py | 255 + trunk/qpid/python/tests_0-8/testlib.py | 66 + trunk/qpid/python/tests_0-8/tx.py | 209 + trunk/qpid/python/tests_0-9/__init__.py | 22 + trunk/qpid/python/tests_0-9/query.py | 224 + trunk/qpid/python/tests_0-9/queue.py | 111 + trunk/qpid/python/todo.txt | 188 + trunk/qpid/review/LICENSE | 206 + trunk/qpid/review/NOTICE | 8 + trunk/qpid/review/agenda.py | 84 + trunk/qpid/review/changeLogToWiki.py | 85 + trunk/qpid/review/jiraRSS2wiki.xsl | 37 + trunk/qpid/review/svnlog2wiki.xsl | 31 + trunk/qpid/ruby/LICENSE.txt | 203 + trunk/qpid/ruby/Makefile | 47 + trunk/qpid/ruby/NOTICE.txt | 19 + trunk/qpid/ruby/README.txt | 22 + trunk/qpid/ruby/RELEASE_NOTES | 15 + trunk/qpid/ruby/Rakefile | 114 + trunk/qpid/ruby/examples/hello-world.rb | 61 + trunk/qpid/ruby/examples/qmf-libvirt.rb | 80 + trunk/qpid/ruby/ext/sasl/extconf.rb | 10 + trunk/qpid/ruby/ext/sasl/sasl.c | 472 + trunk/qpid/ruby/lib/qpid.rb | 41 + trunk/qpid/ruby/lib/qpid/assembler.rb | 148 + trunk/qpid/ruby/lib/qpid/client.rb | 136 + trunk/qpid/ruby/lib/qpid/codec.rb | 457 + trunk/qpid/ruby/lib/qpid/codec08.rb | 265 + trunk/qpid/ruby/lib/qpid/config.rb | 33 + trunk/qpid/ruby/lib/qpid/connection.rb | 222 + trunk/qpid/ruby/lib/qpid/connection08.rb | 252 + trunk/qpid/ruby/lib/qpid/datatypes.rb | 353 + trunk/qpid/ruby/lib/qpid/delegates.rb | 237 + trunk/qpid/ruby/lib/qpid/fields.rb | 49 + trunk/qpid/ruby/lib/qpid/framer.rb | 212 + trunk/qpid/ruby/lib/qpid/invoker.rb | 65 + trunk/qpid/ruby/lib/qpid/packer.rb | 33 + trunk/qpid/ruby/lib/qpid/peer.rb | 289 + trunk/qpid/ruby/lib/qpid/qmf.rb | 1957 ++ trunk/qpid/ruby/lib/qpid/queue.rb | 101 + trunk/qpid/ruby/lib/qpid/session.rb | 458 + trunk/qpid/ruby/lib/qpid/spec.rb | 183 + trunk/qpid/ruby/lib/qpid/spec010.rb | 485 + trunk/qpid/ruby/lib/qpid/spec08.rb | 190 + trunk/qpid/ruby/lib/qpid/test.rb | 35 + trunk/qpid/ruby/lib/qpid/traverse.rb | 64 + trunk/qpid/ruby/lib/qpid/util.rb | 75 + trunk/qpid/ruby/tests/assembler.rb | 78 + trunk/qpid/ruby/tests/codec010.rb | 122 + trunk/qpid/ruby/tests/connection.rb | 246 + trunk/qpid/ruby/tests/datatypes.rb | 224 + trunk/qpid/ruby/tests/framer.rb | 99 + trunk/qpid/ruby/tests/qmf.rb | 248 + trunk/qpid/ruby/tests/queue.rb | 80 + trunk/qpid/ruby/tests/spec010.rb | 80 + trunk/qpid/ruby/tests/util.rb | 72 + trunk/qpid/ruby/tests_0-8/basic.rb | 69 + trunk/qpid/ruby/tests_0-8/channel.rb | 48 + trunk/qpid/specs/LICENSE | 325 + trunk/qpid/specs/NOTICE | 7 + trunk/qpid/specs/amqp-dtx-preview.0-9.xml | 1077 + trunk/qpid/specs/amqp-errata.0-9.xml | 44 + trunk/qpid/specs/amqp-nogen.0-9.xml | 42 + trunk/qpid/specs/amqp.0-10-preview.xml | 7170 +++++ trunk/qpid/specs/amqp.0-10-qpid-errata.xml | 6654 +++++ trunk/qpid/specs/amqp.0-10.dtd | 246 + trunk/qpid/specs/amqp.0-10.xml | 6652 +++++ trunk/qpid/specs/amqp.0-8.xml | 3998 +++ trunk/qpid/specs/amqp.0-9.xml | 5248 ++++ trunk/qpid/specs/amqp0-9-1.stripped.xml | 477 + trunk/qpid/specs/cluster.0-8.xml | 59 + trunk/qpid/specs/management-schema.xml | 360 + trunk/qpid/wcf/QpidWcf.sln | 79 + trunk/qpid/wcf/ReadMe.txt | 162 + .../Channel/WCFToWCFDirect/Client/Client.cs | 68 + .../Channel/WCFToWCFDirect/Client/Client.csproj | 90 + .../Client/Properties/AssemblyInfo.cs | 55 + .../Service/Properties/AssemblyInfo.cs | 55 + .../Channel/WCFToWCFDirect/Service/Service.cs | 83 + .../Channel/WCFToWCFDirect/Service/Service.csproj | 85 + .../Channel/WCFToWCFDirect/WCFToWCFDirect.sln | 46 + .../Another_Topic_Consumer.cs | 67 + .../Another_Topic_Consumer.csproj | 90 + .../Properties/AssemblyInfo.cs | 55 + .../Topic_Consumer/Properties/AssemblyInfo.cs | 55 + .../Topic_Consumer/Topic_Consumer.cs | 85 + .../Topic_Consumer/Topic_Consumer.csproj | 84 + .../Topic_Producer/Properties/AssemblyInfo.cs | 55 + .../Topic_Producer/Topic_Producer.cs | 68 + .../Topic_Producer/Topic_Producer.csproj | 90 + .../Channel/WCFToWCFPubSub/WCFToWCFPubSub.sln | 52 + .../wcf/src/Apache/Qpid/AmqpTypes/AmqpBoolean.cs | 57 + .../qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpInt.cs | 57 + .../src/Apache/Qpid/AmqpTypes/AmqpProperties.cs | 292 + .../wcf/src/Apache/Qpid/AmqpTypes/AmqpString.cs | 91 + .../qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpType.cs | 33 + .../wcf/src/Apache/Qpid/AmqpTypes/AmqpTypes.csproj | 158 + .../wcf/src/Apache/Qpid/AmqpTypes/AmqpUbyte.cs | 57 + .../src/Apache/Qpid/AmqpTypes/CreateNetModule.bat | 33 + .../Qpid/AmqpTypes/Properties/AssemblyInfo.cs | 55 + .../wcf/src/Apache/Qpid/AmqpTypes/PropertyName.cs | 35 + .../src/Apache/Qpid/Channel/AmqpBinaryBinding.cs | 60 + .../Channel/AmqpBinaryBindingCollectionElement.cs | 29 + .../AmqpBinaryBindingConfigurationElement.cs | 79 + .../wcf/src/Apache/Qpid/Channel/AmqpBinding.cs | 121 + .../Qpid/Channel/AmqpBindingCollectionElement.cs | 29 + .../Channel/AmqpBindingConfigurationElement.cs | 269 + .../src/Apache/Qpid/Channel/AmqpChannelFactory.cs | 137 + .../src/Apache/Qpid/Channel/AmqpChannelHelpers.cs | 142 + .../src/Apache/Qpid/Channel/AmqpChannelListener.cs | 188 + .../Qpid/Channel/AmqpTransportBindingElement.cs | 158 + .../Apache/Qpid/Channel/AmqpTransportChannel.cs | 595 + .../wcf/src/Apache/Qpid/Channel/Channel.csproj | 105 + .../src/Apache/Qpid/Channel/ConnectionManager.cs | 266 + .../Apache/Qpid/Channel/Properties/AssemblyInfo.cs | 52 + .../qpid/wcf/src/Apache/Qpid/Channel/RawMessage.cs | 374 + .../src/Apache/Qpid/Channel/RawMessageEncoder.cs | 113 + .../Qpid/Channel/RawMessageEncoderFactory.cs | 45 + .../Channel/RawMessageEncodingBindingElement.cs | 102 + .../wcf/src/Apache/Qpid/Channel/RawXmlReader.cs | 353 + .../wcf/src/Apache/Qpid/Channel/RawXmlWriter.cs | 221 + .../wcf/src/Apache/Qpid/DtcPlugin/DtcPlugin.cpp | 664 + .../wcf/src/Apache/Qpid/Interop/AmqpConnection.cpp | 179 + .../wcf/src/Apache/Qpid/Interop/AmqpConnection.h | 95 + .../wcf/src/Apache/Qpid/Interop/AmqpMessage.cpp | 76 + .../qpid/wcf/src/Apache/Qpid/Interop/AmqpMessage.h | 61 + .../wcf/src/Apache/Qpid/Interop/AmqpSession.cpp | 612 + .../qpid/wcf/src/Apache/Qpid/Interop/AmqpSession.h | 107 + .../wcf/src/Apache/Qpid/Interop/AssemblyInfo.cpp | 57 + .../src/Apache/Qpid/Interop/CompletionWaiter.cpp | 145 + .../wcf/src/Apache/Qpid/Interop/CompletionWaiter.h | 98 + .../src/Apache/Qpid/Interop/DtxResourceManager.cpp | 285 + .../src/Apache/Qpid/Interop/DtxResourceManager.h | 76 + .../qpid/wcf/src/Apache/Qpid/Interop/InputLink.cpp | 853 + trunk/qpid/wcf/src/Apache/Qpid/Interop/InputLink.h | 102 + .../wcf/src/Apache/Qpid/Interop/Interop.vcproj | 493 + .../src/Apache/Qpid/Interop/MessageBodyStream.cpp | 337 + .../src/Apache/Qpid/Interop/MessageBodyStream.h | 131 + .../wcf/src/Apache/Qpid/Interop/MessageWaiter.cpp | 251 + .../wcf/src/Apache/Qpid/Interop/MessageWaiter.h | 125 + .../wcf/src/Apache/Qpid/Interop/OutputLink.cpp | 251 + .../qpid/wcf/src/Apache/Qpid/Interop/OutputLink.h | 64 + .../wcf/src/Apache/Qpid/Interop/QpidException.h | 37 + .../qpid/wcf/src/Apache/Qpid/Interop/QpidMarshal.h | 53 + .../wcf/src/Apache/Qpid/Interop/XaTransaction.cpp | 525 + .../wcf/src/Apache/Qpid/Interop/XaTransaction.h | 96 + trunk/qpid/wcf/src/wcfnet.snk | Bin 0 -> 596 bytes .../Qpid/Test/Channel/Functional/AsyncTest.cs | 190 + .../Channel/Functional/CustomAmqpBindingTest.cs | 77 + .../Test/Channel/Functional/FunctionalTests.csproj | 112 + .../Channel/Functional/IGenericObjectService.cs | 30 + .../Test/Channel/Functional/IInteropService.cs | 31 + .../Channel/Functional/IQueuedDatagramService1.cs | 34 + .../Channel/Functional/IQueuedDatagramService2.cs | 34 + .../Channel/Functional/IQueuedDatagramService3.cs | 33 + .../Test/Channel/Functional/MessageBodyTest.cs | 135 + .../Qpid/Test/Channel/Functional/MessageClient.cs | 101 + .../Test/Channel/Functional/MessageProperties.txt | 22 + .../Channel/Functional/MessagePropertiesTest.cs | 131 + .../Qpid/Test/Channel/Functional/MessageService.cs | 158 + .../Functional/MultipleEndpointsSameQueueTest.cs | 83 + .../Channel/Functional/Properties/AssemblyInfo.cs | 55 + .../Qpid/Test/Channel/Functional/RunTests.bat | 34 + .../Apache/Qpid/Test/Channel/Functional/Util.cs | 74 + .../Test/Channel/WcfPerftest/RawBodyUtility.cs | 161 + .../Qpid/Test/Channel/WcfPerftest/WcfPerftest.cs | 661 + .../Test/Channel/WcfPerftest/WcfPerftest.csproj | 83 + trunk/qpid/wcf/tools/QCreate/QCreate.cpp | 65 + trunk/qpid/wcf/tools/QCreate/QCreate.sln | 40 + trunk/qpid/wcf/tools/QCreate/QCreate.vcproj | 232 + trunk/qpid/wcf/tools/QCreate/ReadMe.txt | 52 + trunk/qpid/wcf/tools/QCreate/stdafx.cpp | 27 + trunk/qpid/wcf/tools/QCreate/stdafx.h | 34 + trunk/qpid/wcf/tools/QCreate/targetver.h | 32 + 4612 files changed, 788381 insertions(+) create mode 100644 trunk/.gitignore create mode 100644 trunk/qpid/KEYS create mode 100644 trunk/qpid/LICENSE create mode 100644 trunk/qpid/NOTICE create mode 100644 trunk/qpid/bin/LICENSE create mode 100644 trunk/qpid/bin/NOTICE create mode 100755 trunk/qpid/bin/mvn-deploy-qpid-java.sh create mode 100755 trunk/qpid/bin/release.sh create mode 100755 trunk/qpid/bin/set_svn_properties.sh create mode 100644 trunk/qpid/buildtools/LICENSE create mode 100644 trunk/qpid/buildtools/NOTICE create mode 100644 trunk/qpid/buildtools/buildCreator/build.config create mode 100755 trunk/qpid/buildtools/buildCreator/buildCreator.py create mode 100644 trunk/qpid/buildtools/buildCreator/qpid.build create mode 100644 trunk/qpid/cc/LICENSE create mode 100644 trunk/qpid/cc/NOTICE create mode 100644 trunk/qpid/cc/README create mode 100644 trunk/qpid/cc/config.properties create mode 100644 trunk/qpid/cc/config.xml create mode 100644 trunk/qpid/cc/config/bdbstore-cpp-trunk.xml create mode 100644 trunk/qpid/cc/config/cpp-perftests.xml create mode 100644 trunk/qpid/cc/config/cpp-trunk.xml create mode 100644 trunk/qpid/cc/config/dotnet-trunk.xml create mode 100644 trunk/qpid/cc/config/example-automation.xml create mode 100644 trunk/qpid/cc/config/java-jmstck.xml create mode 100644 trunk/qpid/cc/config/java-perftests.xml create mode 100644 trunk/qpid/cc/config/java-trunk.xml create mode 100644 trunk/qpid/cc/config/java/cpp.noprefetch.testprofile create mode 100644 trunk/qpid/cc/config/java/cpp.testprofile create mode 100644 trunk/qpid/cc/config/java/jndi.properties create mode 100644 trunk/qpid/cc/dashboard-config.xml create mode 100755 trunk/qpid/cc/scripts/bdbstorecppbuild.sh create mode 100644 trunk/qpid/cc/scripts/build.xml create mode 100755 trunk/qpid/cc/scripts/check_examples.sh create mode 100755 trunk/qpid/cc/scripts/cppbuild-perftests.sh create mode 100755 trunk/qpid/cc/scripts/cppbuild.sh create mode 100644 trunk/qpid/cc/scripts/dotnetbuild.sh create mode 100755 trunk/qpid/cc/scripts/javaconfig.sh create mode 100644 trunk/qpid/cc/scripts/javajmstck.sh create mode 100755 trunk/qpid/cc/scripts/javareport.sh create mode 100644 trunk/qpid/cc/scripts/runbroker.sh create mode 100644 trunk/qpid/cc/scripts/stopbroker.sh create mode 100755 trunk/qpid/cc/scripts/verify create mode 100755 trunk/qpid/cc/scripts/verify_all create mode 100644 trunk/qpid/cpp/BuildInstallSettings.cmake create mode 100644 trunk/qpid/cpp/CMakeLists.txt create mode 100755 trunk/qpid/cpp/CTestConfig.cmake create mode 100644 trunk/qpid/cpp/DESIGN create mode 100644 trunk/qpid/cpp/INSTALL create mode 100644 trunk/qpid/cpp/INSTALL-WINDOWS create mode 100644 trunk/qpid/cpp/LICENSE create mode 100644 trunk/qpid/cpp/Makefile.am create mode 100644 trunk/qpid/cpp/NOTICE create mode 100644 trunk/qpid/cpp/README create mode 100644 trunk/qpid/cpp/RELEASE_NOTES create mode 100644 trunk/qpid/cpp/SSL create mode 100644 trunk/qpid/cpp/bindings/qmf/Makefile.am create mode 100644 trunk/qpid/cpp/bindings/qmf/python/Makefile.am create mode 100644 trunk/qpid/cpp/bindings/qmf/python/python.i create mode 100644 trunk/qpid/cpp/bindings/qmf/python/qmf.py create mode 100644 trunk/qpid/cpp/bindings/qmf/qmfengine.i create mode 100644 trunk/qpid/cpp/bindings/qmf/ruby/Makefile.am create mode 100644 trunk/qpid/cpp/bindings/qmf/ruby/qmf.rb create mode 100644 trunk/qpid/cpp/bindings/qmf/ruby/ruby.i create mode 100644 trunk/qpid/cpp/bindings/qmf/tests/Makefile.am create mode 100755 trunk/qpid/cpp/bindings/qmf/tests/agent_ruby.rb create mode 100644 trunk/qpid/cpp/bindings/qmf/tests/python_agent.py create mode 100755 trunk/qpid/cpp/bindings/qmf/tests/python_console.py create mode 100755 trunk/qpid/cpp/bindings/qmf/tests/ruby_console.rb create mode 100755 trunk/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb create mode 100755 trunk/qpid/cpp/bindings/qmf/tests/run_interop_tests create mode 100644 trunk/qpid/cpp/bindings/qmf/tests/test_base.rb create mode 100644 trunk/qpid/cpp/boost-1.32-support/Makefile create mode 100644 trunk/qpid/cpp/boost-1.32-support/README create mode 100644 trunk/qpid/cpp/boost-1.32-support/boost.tar.gz create mode 100644 trunk/qpid/cpp/boost-1.32-support/main.patch create mode 100644 trunk/qpid/cpp/boost-1.32-support/supressions create mode 100755 trunk/qpid/cpp/bootstrap create mode 100755 trunk/qpid/cpp/build-aux/compile create mode 100755 trunk/qpid/cpp/build-aux/config.guess create mode 100755 trunk/qpid/cpp/build-aux/config.rpath create mode 100755 trunk/qpid/cpp/build-aux/config.sub create mode 100755 trunk/qpid/cpp/build-aux/depcomp create mode 100755 trunk/qpid/cpp/build-aux/install-sh create mode 100755 trunk/qpid/cpp/build-aux/mdate-sh create mode 100755 trunk/qpid/cpp/build-aux/missing create mode 100644 trunk/qpid/cpp/configure.ac create mode 100644 trunk/qpid/cpp/docs/api/CMakeLists.txt create mode 100644 trunk/qpid/cpp/docs/api/Makefile.am create mode 100644 trunk/qpid/cpp/docs/api/developer.doxygen.in create mode 100644 trunk/qpid/cpp/docs/api/doxygen.css create mode 100644 trunk/qpid/cpp/docs/api/doxygen_mainpage.h create mode 100644 trunk/qpid/cpp/docs/api/footer.html create mode 100644 trunk/qpid/cpp/docs/api/header.html create mode 100644 trunk/qpid/cpp/docs/api/stylesheet.css create mode 100644 trunk/qpid/cpp/docs/api/tabs.css create mode 100644 trunk/qpid/cpp/docs/api/user.doxygen.in create mode 100644 trunk/qpid/cpp/docs/man/Makefile.am create mode 100644 trunk/qpid/cpp/docs/man/qpidd.x create mode 100644 trunk/qpid/cpp/etc/CMakeLists.txt create mode 100644 trunk/qpid/cpp/etc/Makefile.am create mode 100644 trunk/qpid/cpp/etc/emacs/qpid-c++-mode.el create mode 100644 trunk/qpid/cpp/etc/qpidc.conf create mode 100755 trunk/qpid/cpp/etc/qpidd create mode 100644 trunk/qpid/cpp/etc/qpidd.conf create mode 100644 trunk/qpid/cpp/etc/sasl2/qpidd.conf create mode 100644 trunk/qpid/cpp/examples/CMakeLists.txt create mode 100644 trunk/qpid/cpp/examples/Makefile.am create mode 100644 trunk/qpid/cpp/examples/README.txt create mode 100644 trunk/qpid/cpp/examples/README.verify create mode 100644 trunk/qpid/cpp/examples/direct/CMakeLists.txt create mode 100644 trunk/qpid/cpp/examples/direct/Makefile.am create mode 100644 trunk/qpid/cpp/examples/direct/declare_queues.cpp create mode 100644 trunk/qpid/cpp/examples/direct/direct_declare_queues.vcproj create mode 100644 trunk/qpid/cpp/examples/direct/direct_direct_producer.vcproj create mode 100644 trunk/qpid/cpp/examples/direct/direct_listener.vcproj create mode 100644 trunk/qpid/cpp/examples/direct/direct_producer.cpp create mode 100644 trunk/qpid/cpp/examples/direct/listener.cpp create mode 100644 trunk/qpid/cpp/examples/direct/verify create mode 100644 trunk/qpid/cpp/examples/direct/verify.in create mode 100644 trunk/qpid/cpp/examples/direct/verify_cpp_python create mode 100644 trunk/qpid/cpp/examples/direct/verify_cpp_python.in create mode 100644 trunk/qpid/cpp/examples/direct/verify_python_cpp create mode 100644 trunk/qpid/cpp/examples/direct/verify_python_cpp.in create mode 100644 trunk/qpid/cpp/examples/examples.sln create mode 100644 trunk/qpid/cpp/examples/failover/CMakeLists.txt create mode 100644 trunk/qpid/cpp/examples/failover/Makefile.am create mode 100644 trunk/qpid/cpp/examples/failover/declare_queues.cpp create mode 100644 trunk/qpid/cpp/examples/failover/failover_declare_queues.vcproj create mode 100644 trunk/qpid/cpp/examples/failover/failover_replaying_sender.vcproj create mode 100644 trunk/qpid/cpp/examples/failover/failover_resuming_receiver.vcproj create mode 100644 trunk/qpid/cpp/examples/failover/replaying_sender.cpp create mode 100644 trunk/qpid/cpp/examples/failover/resuming_receiver.cpp create mode 100644 trunk/qpid/cpp/examples/fanout/CMakeLists.txt create mode 100644 trunk/qpid/cpp/examples/fanout/Makefile.am create mode 100644 trunk/qpid/cpp/examples/fanout/fanout_fanout_producer.vcproj create mode 100644 trunk/qpid/cpp/examples/fanout/fanout_listener.vcproj create mode 100644 trunk/qpid/cpp/examples/fanout/fanout_producer.cpp create mode 100644 trunk/qpid/cpp/examples/fanout/listener.cpp create mode 100644 trunk/qpid/cpp/examples/fanout/verify create mode 100644 trunk/qpid/cpp/examples/fanout/verify.in create mode 100644 trunk/qpid/cpp/examples/fanout/verify_cpp_python create mode 100644 trunk/qpid/cpp/examples/fanout/verify_cpp_python.in create mode 100644 trunk/qpid/cpp/examples/fanout/verify_python_cpp create mode 100644 trunk/qpid/cpp/examples/fanout/verify_python_cpp.in create mode 100644 trunk/qpid/cpp/examples/makedist.mk create mode 100644 trunk/qpid/cpp/examples/messaging/CMakeLists.txt create mode 100644 trunk/qpid/cpp/examples/messaging/Makefile.am create mode 100644 trunk/qpid/cpp/examples/messaging/client.cpp create mode 100644 trunk/qpid/cpp/examples/messaging/drain.cpp create mode 100644 trunk/qpid/cpp/examples/messaging/map_receiver.cpp create mode 100644 trunk/qpid/cpp/examples/messaging/map_sender.cpp create mode 100644 trunk/qpid/cpp/examples/messaging/messaging_client.vcproj create mode 100644 trunk/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj create mode 100644 trunk/qpid/cpp/examples/messaging/messaging_map_sender.vcproj create mode 100644 trunk/qpid/cpp/examples/messaging/messaging_queue_listener.vcproj create mode 100644 trunk/qpid/cpp/examples/messaging/messaging_queue_receiver.vcproj create mode 100644 trunk/qpid/cpp/examples/messaging/messaging_queue_sender.vcproj create mode 100644 trunk/qpid/cpp/examples/messaging/messaging_server.vcproj create mode 100644 trunk/qpid/cpp/examples/messaging/messaging_topic_listener.vcproj create mode 100644 trunk/qpid/cpp/examples/messaging/messaging_topic_receiver.vcproj create mode 100644 trunk/qpid/cpp/examples/messaging/messaging_topic_sender.vcproj create mode 100644 trunk/qpid/cpp/examples/messaging/queue_receiver.cpp create mode 100644 trunk/qpid/cpp/examples/messaging/queue_sender.cpp create mode 100644 trunk/qpid/cpp/examples/messaging/readme.txt create mode 100644 trunk/qpid/cpp/examples/messaging/server.cpp create mode 100644 trunk/qpid/cpp/examples/messaging/spout.cpp create mode 100644 trunk/qpid/cpp/examples/messaging/topic_receiver.cpp create mode 100644 trunk/qpid/cpp/examples/messaging/topic_sender.cpp create mode 100644 trunk/qpid/cpp/examples/pub-sub/CMakeLists.txt create mode 100644 trunk/qpid/cpp/examples/pub-sub/Makefile.am create mode 100644 trunk/qpid/cpp/examples/pub-sub/pub-sub_topic_listener.vcproj create mode 100644 trunk/qpid/cpp/examples/pub-sub/pub-sub_topic_publisher.vcproj create mode 100644 trunk/qpid/cpp/examples/pub-sub/topic_listener.cpp create mode 100644 trunk/qpid/cpp/examples/pub-sub/topic_publisher.cpp create mode 100644 trunk/qpid/cpp/examples/pub-sub/verify create mode 100644 trunk/qpid/cpp/examples/pub-sub/verify.in create mode 100644 trunk/qpid/cpp/examples/pub-sub/verify_cpp_python create mode 100644 trunk/qpid/cpp/examples/pub-sub/verify_cpp_python.in create mode 100644 trunk/qpid/cpp/examples/pub-sub/verify_python_cpp create mode 100644 trunk/qpid/cpp/examples/pub-sub/verify_python_cpp.in create mode 100644 trunk/qpid/cpp/examples/qmf-agent/Makefile create mode 100644 trunk/qpid/cpp/examples/qmf-agent/example.cpp create mode 100644 trunk/qpid/cpp/examples/qmf-agent/example_gen.mak create mode 100644 trunk/qpid/cpp/examples/qmf-agent/qmf_agent.vcproj create mode 100644 trunk/qpid/cpp/examples/qmf-agent/schema.xml create mode 100644 trunk/qpid/cpp/examples/qmf-console/CMakeLists.txt create mode 100644 trunk/qpid/cpp/examples/qmf-console/Makefile.am create mode 100644 trunk/qpid/cpp/examples/qmf-console/cluster-qmon.cpp create mode 100644 trunk/qpid/cpp/examples/qmf-console/console.cpp create mode 100644 trunk/qpid/cpp/examples/qmf-console/ping.cpp create mode 100644 trunk/qpid/cpp/examples/qmf-console/printevents.cpp create mode 100644 trunk/qpid/cpp/examples/qmf-console/qmf-console_console.vcproj create mode 100644 trunk/qpid/cpp/examples/qmf-console/qmf-console_ping.vcproj create mode 100644 trunk/qpid/cpp/examples/qmf-console/qmf-console_printevents.vcproj create mode 100644 trunk/qpid/cpp/examples/qmf-console/qmf-console_queuestats.vcproj create mode 100644 trunk/qpid/cpp/examples/qmf-console/queuestats.cpp create mode 100644 trunk/qpid/cpp/examples/request-response/CMakeLists.txt create mode 100644 trunk/qpid/cpp/examples/request-response/Makefile.am create mode 100644 trunk/qpid/cpp/examples/request-response/client.cpp create mode 100644 trunk/qpid/cpp/examples/request-response/request-response_client.vcproj create mode 100644 trunk/qpid/cpp/examples/request-response/request-response_server.vcproj create mode 100644 trunk/qpid/cpp/examples/request-response/server.cpp create mode 100644 trunk/qpid/cpp/examples/request-response/verify create mode 100644 trunk/qpid/cpp/examples/request-response/verify.in create mode 100644 trunk/qpid/cpp/examples/request-response/verify_cpp_python create mode 100644 trunk/qpid/cpp/examples/request-response/verify_cpp_python.in create mode 100644 trunk/qpid/cpp/examples/request-response/verify_python_cpp create mode 100644 trunk/qpid/cpp/examples/request-response/verify_python_cpp.in create mode 100644 trunk/qpid/cpp/examples/test.txt create mode 100644 trunk/qpid/cpp/examples/tradedemo/CMakeLists.txt create mode 100644 trunk/qpid/cpp/examples/tradedemo/Makefile.am create mode 100644 trunk/qpid/cpp/examples/tradedemo/declare_queues.cpp create mode 100644 trunk/qpid/cpp/examples/tradedemo/topic_listener.cpp create mode 100644 trunk/qpid/cpp/examples/tradedemo/topic_publisher.cpp create mode 100644 trunk/qpid/cpp/examples/tradedemo/tradedemo_declare_queues.vcproj create mode 100644 trunk/qpid/cpp/examples/tradedemo/tradedemo_topic_listener.vcproj create mode 100644 trunk/qpid/cpp/examples/tradedemo/tradedemo_topic_publisher.vcproj create mode 100755 trunk/qpid/cpp/examples/verify create mode 100755 trunk/qpid/cpp/examples/verify_all create mode 100644 trunk/qpid/cpp/examples/xml-exchange/CMakeLists.txt create mode 100644 trunk/qpid/cpp/examples/xml-exchange/Makefile.am create mode 100644 trunk/qpid/cpp/examples/xml-exchange/README create mode 100644 trunk/qpid/cpp/examples/xml-exchange/declare_queues.cpp create mode 100644 trunk/qpid/cpp/examples/xml-exchange/listener.cpp create mode 100644 trunk/qpid/cpp/examples/xml-exchange/xml_producer.cpp create mode 100644 trunk/qpid/cpp/include/qmf/Agent.h create mode 100644 trunk/qpid/cpp/include/qmf/AgentObject.h create mode 100644 trunk/qpid/cpp/include/qmf/Connection.h create mode 100644 trunk/qpid/cpp/include/qmf/ConnectionSettings.h create mode 100644 trunk/qpid/cpp/include/qmf/ConsoleObject.h create mode 100644 trunk/qpid/cpp/include/qmf/QmfImportExport.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/Agent.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/ConnectionSettings.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/Console.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/Event.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/Message.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/Object.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/ObjectId.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/QmfEngineImportExport.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/Query.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/ResilientConnection.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/Schema.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/Typecode.h create mode 100644 trunk/qpid/cpp/include/qmf/engine/Value.h create mode 100755 trunk/qpid/cpp/include/qpid/Address.h create mode 100644 trunk/qpid/cpp/include/qpid/CommonImportExport.h create mode 100644 trunk/qpid/cpp/include/qpid/Exception.h create mode 100644 trunk/qpid/cpp/include/qpid/InlineAllocator.h create mode 100644 trunk/qpid/cpp/include/qpid/InlineVector.h create mode 100644 trunk/qpid/cpp/include/qpid/Msg.h create mode 100644 trunk/qpid/cpp/include/qpid/Options.h create mode 100644 trunk/qpid/cpp/include/qpid/RangeSet.h create mode 100644 trunk/qpid/cpp/include/qpid/SessionId.h create mode 100644 trunk/qpid/cpp/include/qpid/Url.h create mode 100644 trunk/qpid/cpp/include/qpid/agent/ManagementAgent.h create mode 100644 trunk/qpid/cpp/include/qpid/agent/QmfAgentImportExport.h create mode 100644 trunk/qpid/cpp/include/qpid/client/AsyncSession.h create mode 100644 trunk/qpid/cpp/include/qpid/client/ClientImportExport.h create mode 100644 trunk/qpid/cpp/include/qpid/client/Completion.h create mode 100644 trunk/qpid/cpp/include/qpid/client/Connection.h create mode 100644 trunk/qpid/cpp/include/qpid/client/ConnectionSettings.h create mode 100644 trunk/qpid/cpp/include/qpid/client/FailoverListener.h create mode 100644 trunk/qpid/cpp/include/qpid/client/FailoverManager.h create mode 100644 trunk/qpid/cpp/include/qpid/client/FlowControl.h create mode 100644 trunk/qpid/cpp/include/qpid/client/Future.h create mode 100644 trunk/qpid/cpp/include/qpid/client/FutureCompletion.h create mode 100644 trunk/qpid/cpp/include/qpid/client/FutureResult.h create mode 100644 trunk/qpid/cpp/include/qpid/client/Handle.h create mode 100644 trunk/qpid/cpp/include/qpid/client/LocalQueue.h create mode 100644 trunk/qpid/cpp/include/qpid/client/Message.h create mode 100644 trunk/qpid/cpp/include/qpid/client/MessageListener.h create mode 100644 trunk/qpid/cpp/include/qpid/client/MessageReplayTracker.h create mode 100644 trunk/qpid/cpp/include/qpid/client/QueueOptions.h create mode 100644 trunk/qpid/cpp/include/qpid/client/Session.h create mode 100644 trunk/qpid/cpp/include/qpid/client/SessionBase_0_10.h create mode 100644 trunk/qpid/cpp/include/qpid/client/Subscription.h create mode 100644 trunk/qpid/cpp/include/qpid/client/SubscriptionManager.h create mode 100644 trunk/qpid/cpp/include/qpid/client/SubscriptionSettings.h create mode 100644 trunk/qpid/cpp/include/qpid/client/TypedResult.h create mode 100644 trunk/qpid/cpp/include/qpid/client/amqp0_10/Codecs.h create mode 100644 trunk/qpid/cpp/include/qpid/console/Agent.h create mode 100644 trunk/qpid/cpp/include/qpid/console/Broker.h create mode 100644 trunk/qpid/cpp/include/qpid/console/ClassKey.h create mode 100644 trunk/qpid/cpp/include/qpid/console/ConsoleImportExport.h create mode 100644 trunk/qpid/cpp/include/qpid/console/ConsoleListener.h create mode 100644 trunk/qpid/cpp/include/qpid/console/Event.h create mode 100644 trunk/qpid/cpp/include/qpid/console/Object.h create mode 100644 trunk/qpid/cpp/include/qpid/console/ObjectId.h create mode 100644 trunk/qpid/cpp/include/qpid/console/Package.h create mode 100644 trunk/qpid/cpp/include/qpid/console/Schema.h create mode 100644 trunk/qpid/cpp/include/qpid/console/SequenceManager.h create mode 100644 trunk/qpid/cpp/include/qpid/console/SessionManager.h create mode 100644 trunk/qpid/cpp/include/qpid/console/Value.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/Array.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/Buffer.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/FieldTable.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/FieldValue.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/List.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/ProtocolVersion.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/SequenceNumber.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/SequenceSet.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/StructHelper.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/Uuid.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/amqp_types.h create mode 100644 trunk/qpid/cpp/include/qpid/framing/amqp_types_full.h create mode 100644 trunk/qpid/cpp/include/qpid/log/Logger.h create mode 100644 trunk/qpid/cpp/include/qpid/log/Options.h create mode 100644 trunk/qpid/cpp/include/qpid/log/Selector.h create mode 100644 trunk/qpid/cpp/include/qpid/log/SinkOptions.h create mode 100644 trunk/qpid/cpp/include/qpid/log/Statement.h create mode 100644 trunk/qpid/cpp/include/qpid/management/Args.h create mode 100644 trunk/qpid/cpp/include/qpid/management/Manageable.h create mode 100644 trunk/qpid/cpp/include/qpid/management/ManagementEvent.h create mode 100644 trunk/qpid/cpp/include/qpid/management/ManagementObject.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/Address.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/Codec.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/Connection.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/ListContent.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/ListView.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/MapContent.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/MapView.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/Message.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/Receiver.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/Sender.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/Session.h create mode 100644 trunk/qpid/cpp/include/qpid/messaging/Variant.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/Condition.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/ExceptionHolder.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/IOHandle.h create mode 100755 trunk/qpid/cpp/include/qpid/sys/IntegerTypes.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/Monitor.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/Mutex.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/Runnable.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/StrError.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/SystemInfo.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/Thread.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/Time.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/posix/Condition.h create mode 100755 trunk/qpid/cpp/include/qpid/sys/posix/IntegerTypes.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/posix/Mutex.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/posix/PrivatePosix.h create mode 100755 trunk/qpid/cpp/include/qpid/sys/posix/Time.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/posix/check.h create mode 100755 trunk/qpid/cpp/include/qpid/sys/windows/Condition.h create mode 100755 trunk/qpid/cpp/include/qpid/sys/windows/IntegerTypes.h create mode 100755 trunk/qpid/cpp/include/qpid/sys/windows/Mutex.h create mode 100644 trunk/qpid/cpp/include/qpid/sys/windows/Time.h create mode 100755 trunk/qpid/cpp/include/qpid/sys/windows/check.h create mode 100644 trunk/qpid/cpp/m4/ac_pkg_swig.m4 create mode 100644 trunk/qpid/cpp/m4/clock_time.m4 create mode 100644 trunk/qpid/cpp/m4/compiler-flags.m4 create mode 100644 trunk/qpid/cpp/m4/cppunit.m4 create mode 100644 trunk/qpid/cpp/m4/extensions.m4 create mode 100644 trunk/qpid/cpp/m4/python.m4 create mode 100755 trunk/qpid/cpp/make-dist create mode 100644 trunk/qpid/cpp/managementgen/CMakeLists.txt create mode 100644 trunk/qpid/cpp/managementgen/Makefile.am create mode 100755 trunk/qpid/cpp/managementgen/qmf-gen create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/__init__.py create mode 100755 trunk/qpid/cpp/managementgen/qmfgen/generate.py create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/management-types.xml create mode 100755 trunk/qpid/cpp/managementgen/qmfgen/schema.py create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/templates/Args.h create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/templates/CMakeLists.cmake create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/templates/Class.cpp create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/templates/Event.cpp create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/templates/Event.h create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/templates/Makefile.mk create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/templates/Package.cpp create mode 100644 trunk/qpid/cpp/managementgen/qmfgen/templates/Package.h create mode 100644 trunk/qpid/cpp/packaging/NSIS/qpid-icon.ico create mode 100644 trunk/qpid/cpp/packaging/NSIS/qpid-icon.png create mode 100644 trunk/qpid/cpp/packaging/NSIS/qpid-install-banner.bmp create mode 100644 trunk/qpid/cpp/packaging/NSIS/qpid-install-banner.png create mode 100755 trunk/qpid/cpp/qpid-autotools-install create mode 100755 trunk/qpid/cpp/qpid-config.in create mode 100755 trunk/qpid/cpp/rubygen/0-10/allsegmenttypes.rb create mode 100755 trunk/qpid/cpp/rubygen/0-10/exceptions.rb create mode 100755 trunk/qpid/cpp/rubygen/0-10/handlers.rb create mode 100755 trunk/qpid/cpp/rubygen/0-10/specification.rb create mode 100755 trunk/qpid/cpp/rubygen/0-10/typecode.rb create mode 100755 trunk/qpid/cpp/rubygen/MethodBodyDefaultVisitor.rb create mode 100644 trunk/qpid/cpp/rubygen/README create mode 100755 trunk/qpid/cpp/rubygen/amqpgen.rb create mode 100755 trunk/qpid/cpp/rubygen/cppgen.rb create mode 100755 trunk/qpid/cpp/rubygen/framing.0-10/MethodBodyConstVisitor.rb create mode 100755 trunk/qpid/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb create mode 100644 trunk/qpid/cpp/rubygen/framing.0-10/MethodBodyFactory.rb create mode 100755 trunk/qpid/cpp/rubygen/framing.0-10/MethodHolder.rb create mode 100755 trunk/qpid/cpp/rubygen/framing.0-10/Operations.rb create mode 100755 trunk/qpid/cpp/rubygen/framing.0-10/OperationsInvoker.rb create mode 100755 trunk/qpid/cpp/rubygen/framing.0-10/Proxy.rb create mode 100755 trunk/qpid/cpp/rubygen/framing.0-10/Session.rb create mode 100755 trunk/qpid/cpp/rubygen/framing.0-10/all_method_bodies.rb create mode 100755 trunk/qpid/cpp/rubygen/framing.0-10/constants.rb create mode 100644 trunk/qpid/cpp/rubygen/framing.0-10/frame_body_lists.rb create mode 100755 trunk/qpid/cpp/rubygen/framing.0-10/structs.rb create mode 100755 trunk/qpid/cpp/rubygen/generate create mode 100644 trunk/qpid/cpp/src/CMakeLists.txt create mode 100644 trunk/qpid/cpp/src/Makefile.am create mode 100644 trunk/qpid/cpp/src/acl.mk create mode 100644 trunk/qpid/cpp/src/cluster.cmake create mode 100644 trunk/qpid/cpp/src/cluster.mk create mode 100644 trunk/qpid/cpp/src/config.h.cmake create mode 100755 trunk/qpid/cpp/src/generate.sh create mode 100644 trunk/qpid/cpp/src/posix/QpiddBroker.cpp create mode 100755 trunk/qpid/cpp/src/prof create mode 100644 trunk/qpid/cpp/src/qmf.mk create mode 100644 trunk/qpid/cpp/src/qmf/engine/Agent.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/BrokerProxyImpl.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/BrokerProxyImpl.h create mode 100644 trunk/qpid/cpp/src/qmf/engine/ConnectionSettingsImpl.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/ConnectionSettingsImpl.h create mode 100644 trunk/qpid/cpp/src/qmf/engine/ConsoleImpl.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/ConsoleImpl.h create mode 100644 trunk/qpid/cpp/src/qmf/engine/MessageImpl.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/MessageImpl.h create mode 100644 trunk/qpid/cpp/src/qmf/engine/ObjectIdImpl.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/ObjectIdImpl.h create mode 100644 trunk/qpid/cpp/src/qmf/engine/ObjectImpl.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/ObjectImpl.h create mode 100644 trunk/qpid/cpp/src/qmf/engine/Protocol.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/Protocol.h create mode 100644 trunk/qpid/cpp/src/qmf/engine/QueryImpl.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/QueryImpl.h create mode 100644 trunk/qpid/cpp/src/qmf/engine/ResilientConnection.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/SchemaImpl.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/SchemaImpl.h create mode 100644 trunk/qpid/cpp/src/qmf/engine/SequenceManager.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/SequenceManager.h create mode 100644 trunk/qpid/cpp/src/qmf/engine/ValueImpl.cpp create mode 100644 trunk/qpid/cpp/src/qmf/engine/ValueImpl.h create mode 100644 trunk/qpid/cpp/src/qmfc.mk create mode 100644 trunk/qpid/cpp/src/qpid/Address.cpp create mode 100644 trunk/qpid/cpp/src/qpid/DataDir.cpp create mode 100644 trunk/qpid/cpp/src/qpid/DataDir.h create mode 100644 trunk/qpid/cpp/src/qpid/Exception.cpp create mode 100644 trunk/qpid/cpp/src/qpid/Modules.cpp create mode 100644 trunk/qpid/cpp/src/qpid/Modules.h create mode 100644 trunk/qpid/cpp/src/qpid/Options.cpp create mode 100644 trunk/qpid/cpp/src/qpid/Plugin.cpp create mode 100644 trunk/qpid/cpp/src/qpid/Plugin.h create mode 100644 trunk/qpid/cpp/src/qpid/RefCounted.h create mode 100644 trunk/qpid/cpp/src/qpid/RefCountedBuffer.cpp create mode 100644 trunk/qpid/cpp/src/qpid/RefCountedBuffer.h create mode 100644 trunk/qpid/cpp/src/qpid/Serializer.h create mode 100644 trunk/qpid/cpp/src/qpid/SessionId.cpp create mode 100644 trunk/qpid/cpp/src/qpid/SessionState.cpp create mode 100644 trunk/qpid/cpp/src/qpid/SessionState.h create mode 100644 trunk/qpid/cpp/src/qpid/SharedObject.h create mode 100644 trunk/qpid/cpp/src/qpid/StringUtils.cpp create mode 100644 trunk/qpid/cpp/src/qpid/StringUtils.h create mode 100644 trunk/qpid/cpp/src/qpid/Url.cpp create mode 100755 trunk/qpid/cpp/src/qpid/Version.h create mode 100644 trunk/qpid/cpp/src/qpid/acl/Acl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/acl/Acl.h create mode 100644 trunk/qpid/cpp/src/qpid/acl/AclData.cpp create mode 100644 trunk/qpid/cpp/src/qpid/acl/AclData.h create mode 100644 trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp create mode 100644 trunk/qpid/cpp/src/qpid/acl/AclReader.cpp create mode 100644 trunk/qpid/cpp/src/qpid/acl/AclReader.h create mode 100644 trunk/qpid/cpp/src/qpid/acl/management-schema.xml create mode 100644 trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Array.cpp create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Array.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Body.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Codec.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Command.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/CommmandPacker.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.cpp create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Control.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Decimal.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Exception.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/FrameHeader.cpp create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/FrameHeader.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Header.cpp create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Header.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Holder.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Map.cpp create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Map.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Packer.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/SerializableString.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Struct.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Struct32.cpp create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Struct32.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Unit.cpp create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/Unit.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/UnitHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/UnknownStruct.cpp create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/UnknownStruct.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/UnknownType.cpp create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/UnknownType.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/apply.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/built_in_types.h create mode 100644 trunk/qpid/cpp/src/qpid/amqp_0_10/complex_types.cpp create mode 100644 trunk/qpid/cpp/src/qpid/assert.cpp create mode 100644 trunk/qpid/cpp/src/qpid/assert.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/AclModule.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Bridge.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/Bridge.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Broker.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/Broker.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/BrokerImportExport.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Connection.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/Connection.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/ConnectionFactory.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/ConnectionFactory.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/ConnectionState.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/ConnectionToken.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Consumer.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Daemon.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/Daemon.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Deliverable.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/DeliverableMessage.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/DeliverableMessage.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/DeliveryAdapter.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/DeliveryId.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/DirectExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/DtxAck.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/DtxAck.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/DtxBuffer.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/DtxBuffer.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/DtxManager.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/DtxManager.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/DtxTimeout.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/DtxTimeout.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/DtxWorkRecord.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/DtxWorkRecord.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Exchange.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/Exchange.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/FanOutExchange.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/FanOutExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/HandlerImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/HeadersExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/IncompleteMessageList.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/IncompleteMessageList.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Link.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/Link.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/LinkRegistry.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/LinkRegistry.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Message.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/Message.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/MessageAdapter.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/MessageAdapter.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/MessageBuilder.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/MessageBuilder.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/MessageStore.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/MessageStoreModule.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/MessageStoreModule.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/NameGenerator.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/NameGenerator.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/NullMessageStore.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/NullMessageStore.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/OwnershipToken.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Persistable.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/PersistableConfig.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/PersistableExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/PersistableMessage.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/PersistableMessage.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/PersistableQueue.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Queue.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/Queue.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueueBindings.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueueBindings.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueueCleaner.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueueCleaner.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueueEvents.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueueEvents.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueueListeners.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueueListeners.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueuePolicy.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueuePolicy.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueueRegistry.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueueRegistry.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/QueuedMessage.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RateFlowcontrol.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RateTracker.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/RateTracker.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoverableConfig.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoverableExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoverableMessage.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoverableQueue.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoverableTransaction.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoveredDequeue.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoveredDequeue.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoveredEnqueue.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoveredEnqueue.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoveryManager.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/RetryList.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/RetryList.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/SaslAuthenticator.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/SaslAuthenticator.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/SecureConnection.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/SecureConnection.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/SecureConnectionFactory.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/SecureConnectionFactory.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/SemanticState.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/SessionAdapter.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/SessionContext.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/SessionHandler.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/SessionHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/SessionManager.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/SessionManager.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/SessionState.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/SessionState.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/SignalHandler.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/SignalHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/System.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/System.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/TopicExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/TransactionalStore.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/TxAccept.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/TxAccept.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/TxBuffer.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/TxBuffer.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/TxOp.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/TxOpVisitor.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/TxPublish.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/TxPublish.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/Vhost.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/Vhost.h create mode 100644 trunk/qpid/cpp/src/qpid/broker/posix/BrokerDefaults.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/windows/BrokerDefaults.cpp create mode 100644 trunk/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/Bounds.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/Bounds.h create mode 100644 trunk/qpid/cpp/src/qpid/client/ChainableFrameHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/client/Completion.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/CompletionImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/Connection.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/ConnectionAccess.h create mode 100644 trunk/qpid/cpp/src/qpid/client/ConnectionHandler.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/ConnectionHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/client/ConnectionImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/ConnectionImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/ConnectionSettings.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/Connector.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/Connector.h create mode 100644 trunk/qpid/cpp/src/qpid/client/Demux.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/Demux.h create mode 100644 trunk/qpid/cpp/src/qpid/client/Dispatcher.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/Dispatcher.h create mode 100644 trunk/qpid/cpp/src/qpid/client/Execution.h create mode 100644 trunk/qpid/cpp/src/qpid/client/FailoverListener.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/FailoverManager.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/Future.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/FutureCompletion.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/FutureResult.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/LoadPlugins.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/LocalQueue.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/LocalQueueImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/LocalQueueImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/Message.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/MessageImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/MessageImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/MessageListener.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/MessageReplayTracker.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/PrivateImplRef.h create mode 100644 trunk/qpid/cpp/src/qpid/client/QueueOptions.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/Results.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/Results.h create mode 100644 trunk/qpid/cpp/src/qpid/client/Sasl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/SaslFactory.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/SaslFactory.h create mode 100644 trunk/qpid/cpp/src/qpid/client/SessionBase_0_10.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/SessionBase_0_10Access.h create mode 100644 trunk/qpid/cpp/src/qpid/client/SessionImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/SessionImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/SslConnector.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/StateManager.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/StateManager.h create mode 100644 trunk/qpid/cpp/src/qpid/client/Subscription.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/SubscriptionImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/SubscriptionImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/SubscriptionManager.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/SubscriptionManagerImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/SubscriptionManagerImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/TCPConnector.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/TCPConnector.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/AcceptTracker.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/AcceptTracker.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/Codecs.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/CodecsInternal.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/MessageSink.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/MessageSource.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/OutgoingMessage.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/OutgoingMessage.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Cluster.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ClusterMap.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ClusterMap.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ClusterSettings.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Connection.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Connection.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ConnectionCodec.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ConnectionCodec.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Cpg.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Decoder.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Decoder.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Dispatchable.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ErrorCheck.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ErrorCheck.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Event.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Event.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/EventFrame.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/EventFrame.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ExpiryPolicy.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/FailoverExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/InitialStatusMap.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/InitialStatusMap.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/LockedConnectionMap.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/McastFrameHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/MemberSet.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/MemberSet.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Multicaster.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Multicaster.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Numbering.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/PollableQueue.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/PollerDispatch.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/PollerDispatch.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/ProxyInputHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Quorum.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Quorum_cman.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Quorum_cman.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/Quorum_null.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/RetractClient.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/RetractClient.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/StoreStatus.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/StoreStatus.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/UpdateClient.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/UpdateClient.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/UpdateExchange.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/UpdateExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/UpdateReceiver.h create mode 100644 trunk/qpid/cpp/src/qpid/cluster/WatchDogPlugin.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/management-schema.xml create mode 100644 trunk/qpid/cpp/src/qpid/cluster/qpidd_watchdog.cpp create mode 100644 trunk/qpid/cpp/src/qpid/cluster/types.h create mode 100644 trunk/qpid/cpp/src/qpid/console/Agent.cpp create mode 100644 trunk/qpid/cpp/src/qpid/console/Broker.cpp create mode 100644 trunk/qpid/cpp/src/qpid/console/ClassKey.cpp create mode 100644 trunk/qpid/cpp/src/qpid/console/Event.cpp create mode 100644 trunk/qpid/cpp/src/qpid/console/Object.cpp create mode 100644 trunk/qpid/cpp/src/qpid/console/ObjectId.cpp create mode 100644 trunk/qpid/cpp/src/qpid/console/Package.cpp create mode 100644 trunk/qpid/cpp/src/qpid/console/Schema.cpp create mode 100644 trunk/qpid/cpp/src/qpid/console/SequenceManager.cpp create mode 100644 trunk/qpid/cpp/src/qpid/console/SessionManager.cpp create mode 100644 trunk/qpid/cpp/src/qpid/console/Value.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQBody.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQBody.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQCommandControlBody.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQContentBody.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQContentBody.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQDataBlock.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQFrame.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQFrame.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQHeaderBody.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQHeaderBody.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQHeartbeatBody.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQHeartbeatBody.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQMethodBody.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQMethodBody.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/AMQP_HighestVersion.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/AccumulatedAck.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/AccumulatedAck.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/Array.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/Blob.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/Blob.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/BodyFactory.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/BodyHandler.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/BodyHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/BodyHolder.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/BodyHolder.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/Buffer.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/ChannelHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/Endian.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/Endian.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/FieldTable.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/FieldValue.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/FrameDecoder.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/FrameDecoder.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/FrameDefaultVisitor.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/FrameHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/FrameSet.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/FrameSet.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/Handler.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/HeaderProperties.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/InitiationHandler.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/InitiationHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/InputHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/Invoker.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/IsInSequenceSet.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/List.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/MethodBodyFactory.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/MethodContent.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/ModelMethod.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/OutputHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/ProtocolInitiation.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/ProtocolInitiation.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/ProtocolVersion.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/Proxy.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/Proxy.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/SendContent.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/SendContent.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/SequenceNumber.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/SequenceNumberSet.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/SequenceNumberSet.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/SequenceSet.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/TemplateVisitor.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/TransferContent.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/TransferContent.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/TypeFilter.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/Uuid.cpp create mode 100644 trunk/qpid/cpp/src/qpid/framing/Visitor.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/amqp_framing.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/frame_functors.h create mode 100644 trunk/qpid/cpp/src/qpid/framing/variant.h create mode 100644 trunk/qpid/cpp/src/qpid/log/Helpers.h create mode 100644 trunk/qpid/cpp/src/qpid/log/Logger.cpp create mode 100644 trunk/qpid/cpp/src/qpid/log/Options.cpp create mode 100644 trunk/qpid/cpp/src/qpid/log/OstreamOutput.cpp create mode 100644 trunk/qpid/cpp/src/qpid/log/OstreamOutput.h create mode 100644 trunk/qpid/cpp/src/qpid/log/Selector.cpp create mode 100644 trunk/qpid/cpp/src/qpid/log/Statement.cpp create mode 100644 trunk/qpid/cpp/src/qpid/log/posix/SinkOptions.cpp create mode 100644 trunk/qpid/cpp/src/qpid/log/posix/SinkOptions.h create mode 100644 trunk/qpid/cpp/src/qpid/log/windows/SinkOptions.cpp create mode 100644 trunk/qpid/cpp/src/qpid/log/windows/SinkOptions.h create mode 100644 trunk/qpid/cpp/src/qpid/management/IdAllocator.h create mode 100644 trunk/qpid/cpp/src/qpid/management/Manageable.cpp create mode 100644 trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp create mode 100644 trunk/qpid/cpp/src/qpid/management/ManagementAgent.h create mode 100644 trunk/qpid/cpp/src/qpid/management/ManagementExchange.cpp create mode 100644 trunk/qpid/cpp/src/qpid/management/ManagementExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/management/ManagementObject.cpp create mode 100644 trunk/qpid/cpp/src/qpid/memory.h create mode 100644 trunk/qpid/cpp/src/qpid/messaging/Address.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/Connection.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/ConnectionImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/messaging/ListContent.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/ListView.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/MapContent.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/MapView.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/Message.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/MessageImpl.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/MessageImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/messaging/Receiver.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/ReceiverImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/messaging/Sender.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/SenderImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/messaging/Session.cpp create mode 100644 trunk/qpid/cpp/src/qpid/messaging/SessionImpl.h create mode 100644 trunk/qpid/cpp/src/qpid/messaging/Variant.cpp create mode 100644 trunk/qpid/cpp/src/qpid/pointer_to_other.h create mode 100644 trunk/qpid/cpp/src/qpid/ptr_map.h create mode 100644 trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.cpp create mode 100644 trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.h create mode 100644 trunk/qpid/cpp/src/qpid/replication/ReplicationExchange.cpp create mode 100644 trunk/qpid/cpp/src/qpid/replication/ReplicationExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/replication/constants.h create mode 100644 trunk/qpid/cpp/src/qpid/store/CMakeLists.txt create mode 100644 trunk/qpid/cpp/src/qpid/store/MessageStorePlugin.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/MessageStorePlugin.h create mode 100644 trunk/qpid/cpp/src/qpid/store/StorageProvider.h create mode 100644 trunk/qpid/cpp/src/qpid/store/StoreException.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/AmqpTransaction.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/AmqpTransaction.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/BindingRecordset.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/BindingRecordset.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/BlobAdapter.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/BlobAdapter.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/BlobEncoder.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/BlobEncoder.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/BlobRecordset.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/BlobRecordset.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/DatabaseConnection.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/DatabaseConnection.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/Exception.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/MSSqlProvider.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/MessageMapRecordset.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/MessageMapRecordset.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/MessageRecordset.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/MessageRecordset.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/Recordset.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/Recordset.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/State.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/State.h create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/VariantHelper.cpp create mode 100644 trunk/qpid/cpp/src/qpid/store/ms-sql/VariantHelper.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/AggregateOutput.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/AsynchIO.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/AtomicCount.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/AtomicValue.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/AtomicValue_gcc.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/AtomicValue_mutex.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/BlockingQueue.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/Codec.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ConnectionCodec.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ConnectionInputHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ConnectionInputHandlerFactory.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ConnectionOutputHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ConnectionOutputHandlerPtr.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/CopyOnWriteArray.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/DeletionManager.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/DispatchHandle.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/DispatchHandle.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/Dispatcher.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/Dispatcher.h create mode 100755 trunk/qpid/cpp/src/qpid/sys/FileSysDir.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/Fork.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/LockFile.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/LockPtr.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/OutputControl.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/OutputTask.h create mode 100755 trunk/qpid/cpp/src/qpid/sys/PipeHandle.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/PollableCondition.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/PollableQueue.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/Poller.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ProtocolFactory.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/Runnable.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/ScopedIncrement.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/SecurityLayer.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/Semaphore.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/Shlib.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/Shlib.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ShutdownHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/Socket.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/SocketAddress.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/SslPlugin.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/StateMonitor.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/TimeoutHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/Timer.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/Timer.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/Waitable.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/alloca.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/APRBase.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/APRBase.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/APRPool.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/APRPool.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/Condition.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/Mutex.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/Shlib.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/Socket.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/Thread.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/Thread.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/apr/Time.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/cyrus/CyrusSecurityLayer.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/cyrus/CyrusSecurityLayer.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/posix/FileSysDir.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/Fork.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/Fork.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/IOHandle.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/posix/LockFile.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/Mutex.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/PidFile.h create mode 100755 trunk/qpid/cpp/src/qpid/sys/posix/PipeHandle.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/PollableCondition.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/Shlib.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/Socket.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/SocketAddress.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/StrError.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/posix/SystemInfo.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/Thread.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/posix/Time.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/rdma/rdma_exception.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/rdma/rdma_factories.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/rdma/rdma_factories.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/solaris/ECFPoller.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/solaris/SystemInfo.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ssl/SslIo.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/ssl/SslIo.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ssl/SslSocket.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/ssl/SslSocket.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ssl/check.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/ssl/check.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/ssl/util.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/ssl/util.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/uuid.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/windows/AsynchIO.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/windows/AsynchIoResult.h create mode 100644 trunk/qpid/cpp/src/qpid/sys/windows/FileSysDir.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/windows/IOHandle.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/windows/IoHandlePrivate.h create mode 100755 trunk/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/windows/LockFile.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/windows/PipeHandle.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/windows/PollableCondition.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/windows/Shlib.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/windows/Socket.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/windows/SocketAddress.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/windows/StrError.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/windows/SystemInfo.cpp create mode 100755 trunk/qpid/cpp/src/qpid/sys/windows/Thread.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/windows/Time.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/windows/uuid.cpp create mode 100644 trunk/qpid/cpp/src/qpid/sys/windows/uuid.h create mode 100644 trunk/qpid/cpp/src/qpid/xml/XmlBinding.h create mode 100644 trunk/qpid/cpp/src/qpid/xml/XmlExchange.cpp create mode 100644 trunk/qpid/cpp/src/qpid/xml/XmlExchange.h create mode 100644 trunk/qpid/cpp/src/qpid/xml/XmlExchangePlugin.cpp create mode 100644 trunk/qpid/cpp/src/qpidd.cpp create mode 100644 trunk/qpid/cpp/src/qpidd.h create mode 100644 trunk/qpid/cpp/src/rdma.cmake create mode 100644 trunk/qpid/cpp/src/replication.mk create mode 100644 trunk/qpid/cpp/src/ssl.cmake create mode 100644 trunk/qpid/cpp/src/ssl.mk create mode 100644 trunk/qpid/cpp/src/tests/.valgrind.supp create mode 100644 trunk/qpid/cpp/src/tests/AccumulatedAckTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/Address.cpp create mode 100644 trunk/qpid/cpp/src/tests/Array.cpp create mode 100644 trunk/qpid/cpp/src/tests/AsyncCompletion.cpp create mode 100644 trunk/qpid/cpp/src/tests/AtomicValue.cpp create mode 100644 trunk/qpid/cpp/src/tests/Blob.cpp create mode 100644 trunk/qpid/cpp/src/tests/BrokerFixture.h create mode 100644 trunk/qpid/cpp/src/tests/CMakeLists.txt create mode 100644 trunk/qpid/cpp/src/tests/ClientMessage.cpp create mode 100644 trunk/qpid/cpp/src/tests/ClientMessageTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/ClientSessionTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/ClusterFailover.cpp create mode 100644 trunk/qpid/cpp/src/tests/ClusterFixture.cpp create mode 100644 trunk/qpid/cpp/src/tests/ClusterFixture.h create mode 100644 trunk/qpid/cpp/src/tests/ConnectionOptions.h create mode 100644 trunk/qpid/cpp/src/tests/ConsoleTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/DeliveryRecordTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/DispatcherTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/DtxWorkRecordTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/ExchangeTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/FieldTable.cpp create mode 100644 trunk/qpid/cpp/src/tests/FieldValue.cpp create mode 100644 trunk/qpid/cpp/src/tests/ForkedBroker.cpp create mode 100644 trunk/qpid/cpp/src/tests/ForkedBroker.h create mode 100644 trunk/qpid/cpp/src/tests/Frame.cpp create mode 100644 trunk/qpid/cpp/src/tests/FrameDecoder.cpp create mode 100644 trunk/qpid/cpp/src/tests/FramingTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/HeaderTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/HeadersExchangeTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/IncompleteMessageList.cpp create mode 100644 trunk/qpid/cpp/src/tests/InitialStatusMap.cpp create mode 100644 trunk/qpid/cpp/src/tests/InlineAllocator.cpp create mode 100644 trunk/qpid/cpp/src/tests/InlineVector.cpp create mode 100644 trunk/qpid/cpp/src/tests/Makefile.am create mode 100644 trunk/qpid/cpp/src/tests/ManagementTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/MessageBuilderTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/MessageReplayTracker.cpp create mode 100644 trunk/qpid/cpp/src/tests/MessageTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/MessageUtils.h create mode 100644 trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp create mode 100644 trunk/qpid/cpp/src/tests/PartialFailure.cpp create mode 100644 trunk/qpid/cpp/src/tests/PollableCondition.cpp create mode 100644 trunk/qpid/cpp/src/tests/PollerTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/ProxyTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/QueueEvents.cpp create mode 100644 trunk/qpid/cpp/src/tests/QueueOptionsTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/QueuePolicyTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/QueueRegistryTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/QueueTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/README create mode 100644 trunk/qpid/cpp/src/tests/RangeSet.cpp create mode 100644 trunk/qpid/cpp/src/tests/RateFlowcontrolTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/RefCounted.cpp create mode 100644 trunk/qpid/cpp/src/tests/ReplicationTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/RetryList.cpp create mode 100644 trunk/qpid/cpp/src/tests/SequenceNumberTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/SequenceSet.cpp create mode 100644 trunk/qpid/cpp/src/tests/SessionState.cpp create mode 100644 trunk/qpid/cpp/src/tests/Shlib.cpp create mode 100644 trunk/qpid/cpp/src/tests/SocketProxy.h create mode 100644 trunk/qpid/cpp/src/tests/StoreStatus.cpp create mode 100644 trunk/qpid/cpp/src/tests/StringUtils.cpp create mode 100644 trunk/qpid/cpp/src/tests/TestMessageStore.h create mode 100644 trunk/qpid/cpp/src/tests/TestOptions.h create mode 100644 trunk/qpid/cpp/src/tests/TimerTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/TopicExchangeTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/TxBufferTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/TxMocks.h create mode 100644 trunk/qpid/cpp/src/tests/TxPublishTest.cpp create mode 100644 trunk/qpid/cpp/src/tests/Url.cpp create mode 100644 trunk/qpid/cpp/src/tests/Uuid.cpp create mode 100644 trunk/qpid/cpp/src/tests/Variant.cpp create mode 100644 trunk/qpid/cpp/src/tests/XmlClientSessionTest.cpp create mode 100755 trunk/qpid/cpp/src/tests/acl.py create mode 100755 trunk/qpid/cpp/src/tests/ais_check create mode 100644 trunk/qpid/cpp/src/tests/ais_test.cpp create mode 100644 trunk/qpid/cpp/src/tests/amqp_0_10/Map.cpp create mode 100644 trunk/qpid/cpp/src/tests/amqp_0_10/ProxyTemplate.cpp create mode 100644 trunk/qpid/cpp/src/tests/amqp_0_10/apply.cpp create mode 100644 trunk/qpid/cpp/src/tests/amqp_0_10/handlers.cpp create mode 100644 trunk/qpid/cpp/src/tests/amqp_0_10/serialize.cpp create mode 100644 trunk/qpid/cpp/src/tests/background.ps1 create mode 100755 trunk/qpid/cpp/src/tests/benchmark create mode 100755 trunk/qpid/cpp/src/tests/cli_tests.py create mode 100644 trunk/qpid/cpp/src/tests/client_test.cpp create mode 100644 trunk/qpid/cpp/src/tests/cluster.cmake create mode 100644 trunk/qpid/cpp/src/tests/cluster.mk create mode 100755 trunk/qpid/cpp/src/tests/cluster_python_tests create mode 100644 trunk/qpid/cpp/src/tests/cluster_python_tests_failing.txt create mode 100755 trunk/qpid/cpp/src/tests/cluster_read_credit create mode 100644 trunk/qpid/cpp/src/tests/cluster_test.cpp create mode 100644 trunk/qpid/cpp/src/tests/cluster_test_scripts/README.txt create mode 100755 trunk/qpid/cpp/src/tests/cluster_test_scripts/cluster_check create mode 100755 trunk/qpid/cpp/src/tests/cluster_test_scripts/cluster_start create mode 100755 trunk/qpid/cpp/src/tests/cluster_test_scripts/cluster_stop create mode 100755 trunk/qpid/cpp/src/tests/cluster_test_scripts/config_example.sh create mode 100755 trunk/qpid/cpp/src/tests/cluster_test_scripts/perftest create mode 100644 trunk/qpid/cpp/src/tests/cluster_tests.fail create mode 100755 trunk/qpid/cpp/src/tests/cluster_tests.py create mode 100755 trunk/qpid/cpp/src/tests/clustered_replication_test create mode 100644 trunk/qpid/cpp/src/tests/config.null create mode 100644 trunk/qpid/cpp/src/tests/consume.cpp create mode 100644 trunk/qpid/cpp/src/tests/datagen.cpp create mode 100644 trunk/qpid/cpp/src/tests/declare_queues.cpp create mode 100644 trunk/qpid/cpp/src/tests/dlclose_noop.c create mode 100644 trunk/qpid/cpp/src/tests/echotest.cpp create mode 100644 trunk/qpid/cpp/src/tests/exception_test.cpp create mode 100644 trunk/qpid/cpp/src/tests/failover_soak.cpp create mode 100755 trunk/qpid/cpp/src/tests/fanout_perftest create mode 100755 trunk/qpid/cpp/src/tests/federated_cluster_test create mode 100755 trunk/qpid/cpp/src/tests/federated_cluster_test_with_node_failure create mode 100755 trunk/qpid/cpp/src/tests/federated_topic_test create mode 100755 trunk/qpid/cpp/src/tests/federation.py create mode 100644 trunk/qpid/cpp/src/tests/find_prog.ps1 create mode 100644 trunk/qpid/cpp/src/tests/header_test.cpp create mode 100755 trunk/qpid/cpp/src/tests/header_test.py create mode 100644 trunk/qpid/cpp/src/tests/latencytest.cpp create mode 100644 trunk/qpid/cpp/src/tests/logging.cpp create mode 100755 trunk/qpid/cpp/src/tests/long_cluster_tests.py create mode 100755 trunk/qpid/cpp/src/tests/multiq_perftest create mode 100755 trunk/qpid/cpp/src/tests/perfdist create mode 100644 trunk/qpid/cpp/src/tests/perftest.cpp create mode 100644 trunk/qpid/cpp/src/tests/policy.acl create mode 100644 trunk/qpid/cpp/src/tests/publish.cpp create mode 100755 trunk/qpid/cpp/src/tests/python_tests create mode 100644 trunk/qpid/cpp/src/tests/python_tests.ps1 create mode 100644 trunk/qpid/cpp/src/tests/qpid_ping.cpp create mode 100644 trunk/qpid/cpp/src/tests/qpid_stream.cpp create mode 100644 trunk/qpid/cpp/src/tests/qrsh.cpp create mode 100644 trunk/qpid/cpp/src/tests/qrsh_run.cpp create mode 100644 trunk/qpid/cpp/src/tests/qrsh_server.cpp create mode 100755 trunk/qpid/cpp/src/tests/qrsh_utils/10_all create mode 100755 trunk/qpid/cpp/src/tests/qrsh_utils/1_remote_run create mode 100755 trunk/qpid/cpp/src/tests/qrsh_utils/2_forever create mode 100755 trunk/qpid/cpp/src/tests/qrsh_utils/3_kill_it create mode 100755 trunk/qpid/cpp/src/tests/qrsh_utils/4_wait_for_it create mode 100755 trunk/qpid/cpp/src/tests/qrsh_utils/5_exited create mode 100755 trunk/qpid/cpp/src/tests/qrsh_utils/6_get create mode 100755 trunk/qpid/cpp/src/tests/qrsh_utils/7_get_output create mode 100755 trunk/qpid/cpp/src/tests/qrsh_utils/8_any create mode 100755 trunk/qpid/cpp/src/tests/qrsh_utils/9_alias create mode 100644 trunk/qpid/cpp/src/tests/qrsh_utils/qrsh_example_command.cpp create mode 100644 trunk/qpid/cpp/src/tests/qrsh_utils/qrsh_forever.cpp create mode 100644 trunk/qpid/cpp/src/tests/qrsh_utils/qsh_doc.txt create mode 100755 trunk/qpid/cpp/src/tests/quick_perftest create mode 100755 trunk/qpid/cpp/src/tests/quick_topictest create mode 100644 trunk/qpid/cpp/src/tests/quick_topictest.ps1 create mode 100755 trunk/qpid/cpp/src/tests/quick_txtest create mode 100644 trunk/qpid/cpp/src/tests/receiver.cpp create mode 100755 trunk/qpid/cpp/src/tests/reliable_replication_test create mode 100644 trunk/qpid/cpp/src/tests/replaying_sender.cpp create mode 100755 trunk/qpid/cpp/src/tests/replication_test create mode 100755 trunk/qpid/cpp/src/tests/restart_cluster create mode 100644 trunk/qpid/cpp/src/tests/resuming_receiver.cpp create mode 100755 trunk/qpid/cpp/src/tests/ring_queue_test create mode 100755 trunk/qpid/cpp/src/tests/run-unit-tests create mode 100755 trunk/qpid/cpp/src/tests/run_acl_tests create mode 100755 trunk/qpid/cpp/src/tests/run_cli_tests create mode 100755 trunk/qpid/cpp/src/tests/run_cluster_test create mode 100755 trunk/qpid/cpp/src/tests/run_cluster_tests create mode 100755 trunk/qpid/cpp/src/tests/run_failover_soak create mode 100755 trunk/qpid/cpp/src/tests/run_federation_tests create mode 100644 trunk/qpid/cpp/src/tests/run_federation_tests.ps1 create mode 100755 trunk/qpid/cpp/src/tests/run_header_test create mode 100644 trunk/qpid/cpp/src/tests/run_header_test.ps1 create mode 100755 trunk/qpid/cpp/src/tests/run_long_cluster_tests create mode 100755 trunk/qpid/cpp/src/tests/run_perftest create mode 100755 trunk/qpid/cpp/src/tests/run_ring_queue_test create mode 100755 trunk/qpid/cpp/src/tests/run_test create mode 100644 trunk/qpid/cpp/src/tests/run_test.ps1 create mode 100644 trunk/qpid/cpp/src/tests/sender.cpp create mode 100755 trunk/qpid/cpp/src/tests/shared_perftest create mode 100644 trunk/qpid/cpp/src/tests/shlibtest.cpp create mode 100644 trunk/qpid/cpp/src/tests/ssl.mk create mode 100755 trunk/qpid/cpp/src/tests/ssl_test create mode 100755 trunk/qpid/cpp/src/tests/start_broker create mode 100644 trunk/qpid/cpp/src/tests/start_broker.ps1 create mode 100755 trunk/qpid/cpp/src/tests/start_cluster create mode 100755 trunk/qpid/cpp/src/tests/start_cluster_hosts create mode 100755 trunk/qpid/cpp/src/tests/stop_broker create mode 100644 trunk/qpid/cpp/src/tests/stop_broker.ps1 create mode 100755 trunk/qpid/cpp/src/tests/stop_cluster create mode 100644 trunk/qpid/cpp/src/tests/test_env.sh.in create mode 100644 trunk/qpid/cpp/src/tests/test_store.cpp create mode 100644 trunk/qpid/cpp/src/tests/test_tools.h create mode 100755 trunk/qpid/cpp/src/tests/test_watchdog create mode 100755 trunk/qpid/cpp/src/tests/test_wrap create mode 100644 trunk/qpid/cpp/src/tests/testlib.py create mode 100644 trunk/qpid/cpp/src/tests/topic_listener.cpp create mode 100755 trunk/qpid/cpp/src/tests/topic_perftest create mode 100644 trunk/qpid/cpp/src/tests/topic_publisher.cpp create mode 100755 trunk/qpid/cpp/src/tests/topictest create mode 100644 trunk/qpid/cpp/src/tests/topictest.ps1 create mode 100644 trunk/qpid/cpp/src/tests/txjob.cpp create mode 100644 trunk/qpid/cpp/src/tests/txshift.cpp create mode 100644 trunk/qpid/cpp/src/tests/txtest.cpp create mode 100644 trunk/qpid/cpp/src/tests/unit_test.cpp create mode 100644 trunk/qpid/cpp/src/tests/unit_test.h create mode 100644 trunk/qpid/cpp/src/tests/vg_check create mode 100644 trunk/qpid/cpp/src/tests/windows/DisableWin32ErrorWindows.cpp create mode 100644 trunk/qpid/cpp/src/windows/QpiddBroker.cpp create mode 100644 trunk/qpid/cpp/src/xml.mk create mode 100755 trunk/qpid/cpp/versions create mode 100644 trunk/qpid/cpp/xml/cluster.xml create mode 100644 trunk/qpid/cpp/xml/extra.xml create mode 100644 trunk/qpid/dotnet/LICENSE.txt create mode 100644 trunk/qpid/dotnet/NOTICE.txt create mode 100644 trunk/qpid/dotnet/Qpid.Buffer.Tests/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer.Tests/Qpid.Buffer.Tests.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Buffer.Tests/SimpleByteBufferTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer.Tests/SlicedByteBufferTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer.Tests/default.build create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/BufferOverflowException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/BufferUnderflowException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/ByteBuffer.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/ByteBufferHexDumper.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/IByteBufferAllocator.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/Qpid.Buffer.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/SimpleByteBuffer.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/SimpleByteBufferAllocator.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/SlicedByteBuffer.cs create mode 100644 trunk/qpid/dotnet/Qpid.Buffer/default.build create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/App.config create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/BrokerDetails/BrokerDetailsTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/Channel/ChannelMessageCreationTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/Messages/MessageFactoryRegistryTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/Qpid.Client.Tests.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/Security/CallbackHandlerRegistryTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/default.build create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/interop/TopicListener.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/interop/TopicPublisher.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/lib/nunit/nunit-licence.txt create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/lib/nunit/nunit.framework.dll create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/log4net.config create mode 100644 trunk/qpid/dotnet/Qpid.Client.Tests/url/ConnectionUrlTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Transport.Socket.Blocking/BlockingSocketProcessor.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Transport.Socket.Blocking/BlockingSocketTransport.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Transport.Socket.Blocking/ByteChannel.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Transport.Socket.Blocking/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client.Transport.Socket.Blocking/Qpid.Client.Transport.Socket.Blocking.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Client.Transport.Socket.Blocking/Qpid.Client.Transport.Socket.Blocking.mdp create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/AMQAuthenticationException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/AMQConnection.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/AMQConnectionException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/AMQDestination.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/AMQNoConsumersException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/AMQNoRouteException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/AmqBrokerInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/AmqChannel.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/BasicMessageConsumer.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/BasicMessageProducer.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Closeable.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Configuration/AuthenticationConfigurationSectionHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/ConnectionTuneParameters.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Failover/FailoverException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Failover/FailoverHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Failover/FailoverState.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Failover/FailoverSupport.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/BasicDeliverMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/BasicReturnMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/ChannelCloseMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/ConnectionCloseMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/ConnectionCloseOkHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/ConnectionOpenOkMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/ConnectionRedirectMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/ConnectionSecureMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/ConnectionStartMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/ConnectionTuneMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/QueueDeleteOkMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Handler/QueuePurgeOkMethodHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/AMQMessage.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/AMQMessageFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/IMessageFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/MessageFactoryRegistry.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/QpidBytesMessageFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/QpidHeaders.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/QpidTextMessageFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/UnexpectedBodyReceivedException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Message/UnprocessedMessage.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Protocol/AMQMethodEvent.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Protocol/AMQProtocolListener.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Protocol/AMQProtocolSession.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Protocol/DefaultTimeouts.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Protocol/IConnectionCloser.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Protocol/IProtocolListener.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Protocol/Listener/BlockingMethodFrameListener.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Protocol/Listener/IAMQMethodListener.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Protocol/Listener/SpecificMethodFrameListener.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Protocol/ProtocolWriter.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/QpidConnectionInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Security/CallbackHandlerRegistry.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Security/IAMQCallbackHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Security/UsernamePasswordCallbackHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/SslOptions.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/State/AMQState.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/State/AMQStateChangedEvent.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/State/AMQStateManager.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/State/IAMQStateListener.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/State/IStateAwareMethodListener.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/State/IStateListener.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/State/IllegalStateTransitionException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/State/StateWaiter.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/AMQProtocolProvider.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/AmqpChannel.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/IByteChannel.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/IProtocolChannel.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/IProtocolWriter.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/IStreamFilter.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/ITransport.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/IoHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/ProtocolDecoderOutput.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/SingleProtocolEncoderOutput.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/Socket/Blocking/BlockingSocketTransport.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/Socket/Blocking/ByteChannel.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/Socket/Blocking/ISocketConnector.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/Socket/Blocking/SocketConnector.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Transport/Socket/Blocking/SslSocketConnector.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Client/Util/FlowControlQueue.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/Qpid.Client.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Client/default.build create mode 100644 trunk/qpid/dotnet/Qpid.Client/qms/BrokerInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/qms/ConnectionInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/qms/FailoverPolicy.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/qms/UrlSyntaxException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/qms/failover/FailoverMethod.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/qms/failover/FailoverRoundRobin.cs create mode 100644 trunk/qpid/dotnet/Qpid.Client/qms/failover/FailoverSingleServer.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/CumulativeProtocolDecoder.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/Demux/DemuxingProtocolCodecFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/Demux/IMessageDecoder.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/Demux/IMessageDecoderFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/Demux/IMessageEncoder.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/Demux/IMessageEncoderFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/Demux/MessageDecoderResult.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/IProtocolCodecFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/IProtocolDecoder.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/IProtocolDecoderOutput.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/IProtocolEncoder.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/IProtocolEncoderOutput.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/ProtocolCodecException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/ProtocolDecoderException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/ProtocolEncoderException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/Qpid.Codec.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Codec/Support/SimpleProtocolDecoderOutput.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/Support/SimpleProtocolEncoderOutput.cs create mode 100644 trunk/qpid/dotnet/Qpid.Codec/default.build create mode 100644 trunk/qpid/dotnet/Qpid.Common.Tests/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common.Tests/Qpid.Common.Tests.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Common.Tests/Qpid/Collections/TestConsumerProducerQueue.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common.Tests/Qpid/Collections/TestLinkedHashtable.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common.Tests/Qpid/Framing/TestAMQType.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common.Tests/Qpid/Framing/TestEncodingUtils.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common.Tests/default.build create mode 100644 trunk/qpid/dotnet/Qpid.Common/AMQChannelClosedException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/AMQConnectionClosedException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/AMQDisconnectedException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/AMQException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/AMQInvalidArgumentException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/AMQInvalidRoutingKeyException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/AMQUndeliveredException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/AssemblySettings.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Collections/BlockingQueue.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Collections/ConsumerProducerQueue.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Collections/LinkedBlockingQueue.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Collections/LinkedHashtable.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Collections/SynchronousQueue.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/AMQDataBlockDecoder.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/AMQDataBlockEncoder.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/AMQFrame.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/AMQFrameDecodingException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/AMQMethodBody.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/AMQMethodBodyFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/AMQProtocolHeaderException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/AMQType.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/AMQTypeMap.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/AMQTypedValue.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/BasicContentHeaderProperties.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/CompositeAMQDataBlock.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/ContentBody.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/ContentBodyFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/ContentHeaderBody.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/ContentHeaderBodyFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/ContentHeaderPropertiesFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/EncodingUtils.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/FieldTable.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/HeartbeatBody.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/HeartbeatBodyFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/IBody.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/IBodyFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/IContentHeaderProperties.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/IDataBlock.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/IEncodableAMQDataBlock.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Framing/ProtocolInitiation.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Protocol/AMQConstant.cs create mode 100644 trunk/qpid/dotnet/Qpid.Common/Qpid.Common.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Common/amqp.xml create mode 100644 trunk/qpid/dotnet/Qpid.Common/build.xml create mode 100644 trunk/qpid/dotnet/Qpid.Common/default.build create mode 100644 trunk/qpid/dotnet/Qpid.Common/lib/log4net/log4net-licence.txt create mode 100644 trunk/qpid/dotnet/Qpid.Common/lib/log4net/log4net.dll create mode 100644 trunk/qpid/dotnet/Qpid.Common/lib/log4net/log4net.xml create mode 100644 trunk/qpid/dotnet/Qpid.Common/lib/saxon/saxon-licence.txt create mode 100644 trunk/qpid/dotnet/Qpid.Common/lib/saxon/saxon8.jar create mode 100644 trunk/qpid/dotnet/Qpid.Common/lib/seclib-1.0.0/Org.Mentalis.Security.dll create mode 100644 trunk/qpid/dotnet/Qpid.Common/lib/seclib-1.0.0/seclib-license.txt create mode 100644 trunk/qpid/dotnet/Qpid.Common/resources/registry.template create mode 100644 trunk/qpid/dotnet/Qpid.Common/stylesheets/csharp.xsl create mode 100644 trunk/qpid/dotnet/Qpid.Common/stylesheets/framing.xsl create mode 100644 trunk/qpid/dotnet/Qpid.Common/stylesheets/java.xsl create mode 100644 trunk/qpid/dotnet/Qpid.Common/stylesheets/prepare1.xsl create mode 100644 trunk/qpid/dotnet/Qpid.Common/stylesheets/prepare2.xsl create mode 100644 trunk/qpid/dotnet/Qpid.Common/stylesheets/prepare3.xsl create mode 100644 trunk/qpid/dotnet/Qpid.Common/stylesheets/readme.txt create mode 100644 trunk/qpid/dotnet/Qpid.Common/stylesheets/registry.xsl create mode 100644 trunk/qpid/dotnet/Qpid.Common/stylesheets/utils.xsl create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/Properties/AssemblyInfo.cs create mode 100755 trunk/qpid/dotnet/Qpid.Integration.Tests/Qpid.Integration.Tests.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/README.txt create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/default.build create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/Assertion.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/Assertion.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/AssertionBase.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/BrokerLifecycleAware.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/CauseFailure.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/CauseFailureUserPrompt.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/Circuit.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/Circuit.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/CircuitEnd.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/CircuitEndBase.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/ExceptionMonitor.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/FrameworkBaseCase.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/FrameworkBaseCase.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/LocalCircuitFactory.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/MessageMonitor.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/MessagingTestConfigProperties.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/NotApplicableAssertion.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/Publisher.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/Publisher.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/README.txt create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/Receiver.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/Receiver.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/TestClientDetails.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/TestClientDetails.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/TestModel.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/TestUtils.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/alljava.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/clocksynch/ClockSynchFailureException.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/clocksynch/ClockSynchThread.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/clocksynch/ClockSynchronizer.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/clocksynch/LocalClockSynchronizer.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/clocksynch/UDPClockSynchronizer.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/distributedcircuit/TestClient.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/distributedcircuit/TestClientCircuitEnd.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/distributedcircuit/TestClientControlledTest.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/localcircuit/LocalCircuitImpl.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/localcircuit/LocalPublisherImpl.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/localcircuit/LocalReceiverImpl.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/sequencers/BaseCircuitFactory.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/sequencers/CircuitFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/framework/sequencers/CircuitFactory.csx create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/interactive/FailoverTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/interactive/SendReceiveTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/interop/InteropClientTestCase.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/interop/TestCases/TestCase1DummyRun.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/interop/TestCases/TestCase2BasicP2P.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/interop/TestCases/TestCase3BasicPubSub.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/interop/TestClient.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/log4net.config create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/old/ServiceProvidingClient.tmp create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/old/ServiceRequestingClient.tmp create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/BaseMessagingTestFixture.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/ChannelQueueTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/CommitRollbackTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/ConnectionTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/DurableSubscriptionTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/HeadersExchangeTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/MandatoryMessageTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/ProducerMultiConsumerTest.cs create mode 100755 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/Qpid.Integration.Tests.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/SslConnectionTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Integration.Tests/testcases/SustainedTest.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/AcknowledgeMode.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/ChannelLimitReachedException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/DeliveryMode.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/ExchangeClassConstants.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/ExchangeNameDefaults.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/IBytesMessage.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/IChannel.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/ICloseable.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/IConnection.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/IConnectionFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/IConnectionListener.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/IFieldTable.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/IHeaders.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/IMessage.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/IMessageConsumer.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/IMessagePublisher.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/ITextMessage.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/MessageConsumerBuilder.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/MessageNotReadableException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/MessageNotWritableException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/MessagePublisherBuilder.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/Qpid.Messaging.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/QpidException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/ResourceAllocationException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Messaging/default.build create mode 100644 trunk/qpid/dotnet/Qpid.NET.FxCop create mode 100644 trunk/qpid/dotnet/Qpid.NET.sln create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/App.config create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/Mechanisms/AnonymousSaslClientTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/Mechanisms/CramMD5SaslClientTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/Mechanisms/DigestSaslClientTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/Mechanisms/ExternalSaslClientTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/Mechanisms/PlainSaslClientTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/Qpid.Sasl.Tests.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/SaslTests.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/TestClientFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl.Tests/default.build create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Callbacks.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Configuration/SaslConfiguration.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Configuration/SaslConfigurationSectionHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/DefaultClientFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/ISaslCallbackHandler.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/ISaslClient.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/ISaslClientFactory.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/MD5HMAC.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Mechanisms/AnonymousSaslClient.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Mechanisms/CramMD5HexSaslClient.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Mechanisms/CramMD5SaslClient.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Mechanisms/DigestSaslClient.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Mechanisms/ExternalSaslClient.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Mechanisms/PlainSaslClient.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Qpid.Sasl.csproj create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/Sasl.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/SaslClient.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/SaslException.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/SaslProperties.cs create mode 100644 trunk/qpid/dotnet/Qpid.Sasl/default.build create mode 100644 trunk/qpid/dotnet/README.txt create mode 100644 trunk/qpid/dotnet/RELEASE_NOTES.txt create mode 100644 trunk/qpid/dotnet/TestClient/Program.cs create mode 100644 trunk/qpid/dotnet/TestClient/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/TestClient/TestClient.csproj create mode 100644 trunk/qpid/dotnet/TestClient/default.build create mode 100644 trunk/qpid/dotnet/TopicListener/Program.cs create mode 100644 trunk/qpid/dotnet/TopicListener/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/TopicListener/TopicListener.csproj create mode 100644 trunk/qpid/dotnet/TopicListener/default.build create mode 100644 trunk/qpid/dotnet/TopicPublisher/Program.cs create mode 100644 trunk/qpid/dotnet/TopicPublisher/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/TopicPublisher/TopicPublisher.csproj create mode 100644 trunk/qpid/dotnet/TopicPublisher/default.build create mode 100644 trunk/qpid/dotnet/build-framing.bat create mode 100755 trunk/qpid/dotnet/build-mono create mode 100644 trunk/qpid/dotnet/build-msbuild.bat create mode 100755 trunk/qpid/dotnet/build-nant-release create mode 100644 trunk/qpid/dotnet/build-nant.bat create mode 100644 trunk/qpid/dotnet/client-010/App.config create mode 100644 trunk/qpid/dotnet/client-010/LICENSE.txt create mode 100644 trunk/qpid/dotnet/client-010/NOTICE.txt create mode 100644 trunk/qpid/dotnet/client-010/README.txt create mode 100644 trunk/qpid/dotnet/client-010/addins/ExcelAddIn/Excel.exe.config create mode 100644 trunk/qpid/dotnet/client-010/addins/ExcelAddIn/ExcelAddIn.cs create mode 100644 trunk/qpid/dotnet/client-010/addins/ExcelAddIn/ExcelAddIn.csproj create mode 100644 trunk/qpid/dotnet/client-010/addins/ExcelAddIn/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/addins/ExcelAddInMessageProcessor/ExcelAddInMessageProcessor.csproj create mode 100644 trunk/qpid/dotnet/client-010/addins/ExcelAddInMessageProcessor/Processor.cs create mode 100644 trunk/qpid/dotnet/client-010/addins/ExcelAddInMessageProcessor/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/addins/ExcelAddInProducer/ExcelAddInProducer.csproj create mode 100644 trunk/qpid/dotnet/client-010/addins/ExcelAddInProducer/Program.cs create mode 100644 trunk/qpid/dotnet/client-010/addins/ExcelAddInProducer/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/addins/README.txt create mode 100644 trunk/qpid/dotnet/client-010/client/Client.csproj create mode 100644 trunk/qpid/dotnet/client-010/client/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client.sln create mode 100644 trunk/qpid/dotnet/client-010/client/client.suo create mode 100644 trunk/qpid/dotnet/client-010/client/client/Client.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/ClientConnectionDelegate.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/ClientInterface.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/ClientSession.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/ClientSessionDelegate.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/ClosedListenerInterface.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/ErrorCode.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/IClient.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/IClientSession.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/IClosedListener.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/IMessage.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/IMessageListener.cs create mode 100644 trunk/qpid/dotnet/client-010/client/client/Message.cs create mode 100644 trunk/qpid/dotnet/client-010/client/default.build create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Binary.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Binding.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Channel.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/ChannelDelegate.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/ClientDelegate.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Connection.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/ConnectionDelegate.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Field.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Future.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Header.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/IBinding.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/IFuture.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/IProtocolDelegate.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/IProtocolEvent.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/IReceiver.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/ISender.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/ISession.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Method.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/ProtocolDelegate.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/ProtocolError.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/ProtocolEvent.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/ProtocolHeader.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Range.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/RangeSet.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/ReceivedPayload.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Receiver.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Sender.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Session.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/SessionDelegate.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/Struct.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/codec/AbstractDecoder.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/codec/AbstractEncoder.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/codec/Decoder.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/codec/Encodable.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/codec/Encoder.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/codec/IDecoder.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/codec/IEncodable.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/codec/IEncoder.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/codec/MSDecoder.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/codec/MSEncoder.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/exception/ConnectionException.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/exception/ExceptionArgs.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/exception/ProtocolVersionException.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/exception/SessionClosedException.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/exception/SessionException.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/exception/TransportException.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/Assembler.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/Disassembler.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/Frame.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/IIoSender.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/INetworkDelegate.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/INetworkEvent.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/InputHandler.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/NetworkDelegate.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/NetworkEvent.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/io/IIoSender.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/io/IIoTransport.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/io/IoReceiver.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/io/IoSSLTransport.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/io/IoSender.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/network/io/IoTransport.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/util/ByteEncoder.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/util/CircularBuffer.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/util/Functions.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/util/Logger.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/util/ResultFuture.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/util/Serial.cs create mode 100644 trunk/qpid/dotnet/client-010/client/transport/util/UUID.cs create mode 100644 trunk/qpid/dotnet/client-010/default.build create mode 100644 trunk/qpid/dotnet/client-010/demo/Demo.csproj create mode 100644 trunk/qpid/dotnet/client-010/demo/Program.cs create mode 100644 trunk/qpid/dotnet/client-010/demo/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/demo/Properties/Resources.Designer.cs create mode 100644 trunk/qpid/dotnet/client-010/demo/Properties/Resources.resx create mode 100644 trunk/qpid/dotnet/client-010/demo/Properties/Settings.Designer.cs create mode 100644 trunk/qpid/dotnet/client-010/demo/Properties/Settings.settings create mode 100644 trunk/qpid/dotnet/client-010/demo/default.build create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/example-direct-Listener/Listener.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/example-direct-Listener/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/example-direct-Listener/default.build create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/example-direct-Listener/example-direct-Listener.csproj create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/example-direct-producer/Producer.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/example-direct-producer/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/example-direct-producer/default.build create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/example-direct-producer/example-direct-producer.csproj create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify.in create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_cpp_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_cpp_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_dotnet_cpp create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_dotnet_cpp.in create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_dotnet_java create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_dotnet_java.in create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_dotnet_python create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_dotnet_python.in create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_java_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_java_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_python_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/direct/verify_python_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/Listener.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/default.build create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/example-fanout-Listener.csproj create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/Producer.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/default.build create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/example-fanout-Producer.csproj create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify.in create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_cpp_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_cpp_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_dotnet_cpp create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_dotnet_cpp.in create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_dotnet_java create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_dotnet_java.in create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_dotnet_python create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_dotnet_python.in create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_java_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_java_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_python_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/fanout/verify_python_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/Listener.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/default.build create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/example-pub-sub-Listener.csproj create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/Publisher.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/default.build create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/example-pub-sub-Publisher.csproj create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify.in create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_cpp_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_cpp_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_cpp create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_cpp.in create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_java create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_java.in create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_python create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_python.in create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_java_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_java_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_python_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/pub-sub/verify_python_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/RequestResponseClient.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/default.build create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/example-request-response-Client.csproj create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/Server.cs create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/default.build create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/example-request-response-Server.csproj create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify.in create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_cpp_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_cpp_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_dotnet_cpp create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_dotnet_cpp.in create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_dotnet_java create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_dotnet_java.in create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_dotnet_python create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_dotnet_python.in create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_java_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_java_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_python_dotnet create mode 100644 trunk/qpid/dotnet/client-010/examples/request-response/verify_python_dotnet.in create mode 100644 trunk/qpid/dotnet/client-010/gentool/Composite.tpl create mode 100644 trunk/qpid/dotnet/client-010/gentool/Constant.tpl create mode 100644 trunk/qpid/dotnet/client-010/gentool/Enum.tpl create mode 100644 trunk/qpid/dotnet/client-010/gentool/IInvoker.tpl create mode 100644 trunk/qpid/dotnet/client-010/gentool/Invoker.tpl create mode 100644 trunk/qpid/dotnet/client-010/gentool/MethodDelegate.tpl create mode 100644 trunk/qpid/dotnet/client-010/gentool/Option.tpl create mode 100644 trunk/qpid/dotnet/client-010/gentool/StructFactory.tpl create mode 100644 trunk/qpid/dotnet/client-010/gentool/Type.tpl create mode 100644 trunk/qpid/dotnet/client-010/gentool/build.xml create mode 100644 trunk/qpid/dotnet/client-010/gentool/codegen create mode 100644 trunk/qpid/dotnet/client-010/gentool/dotnetgenutil.py create mode 100644 trunk/qpid/dotnet/client-010/lib/log4net/log4net-licence.txt create mode 100644 trunk/qpid/dotnet/client-010/lib/log4net/log4net.dll create mode 100644 trunk/qpid/dotnet/client-010/lib/log4net/log4net.xml create mode 100644 trunk/qpid/dotnet/client-010/lib/nunit/nunit-licence.txt create mode 100644 trunk/qpid/dotnet/client-010/lib/nunit/nunit.framework.dll create mode 100644 trunk/qpid/dotnet/client-010/lib/plossum/C5-License.txt create mode 100644 trunk/qpid/dotnet/client-010/lib/plossum/C5.dll create mode 100644 trunk/qpid/dotnet/client-010/lib/plossum/Plossum CommandLine.dll create mode 100644 trunk/qpid/dotnet/client-010/lib/plossum/license.txt create mode 100644 trunk/qpid/dotnet/client-010/log.xml create mode 100644 trunk/qpid/dotnet/client-010/management/console/AbstractConsole.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/Agent.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/Broker.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/BrokerURL.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/ClassKey.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/Console.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/MethodResult.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/ObjectID.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/QMFEvent.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/QMFObject.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/SchemaArgument.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/SchemaClass.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/SchemaMethod.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/SchemaProperty.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/SchemaStatistic.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/SchemaVariable.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/SequenceManager.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/Session.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/Util.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/XMLUtil.cs create mode 100644 trunk/qpid/dotnet/client-010/management/console/console.csproj create mode 100644 trunk/qpid/dotnet/client-010/management/console/console.sln create mode 100644 trunk/qpid/dotnet/client-010/management/console/console.userprefs create mode 100644 trunk/qpid/dotnet/client-010/management/console/console.usertasks create mode 100644 trunk/qpid/dotnet/client-010/management/console/default.build create mode 100644 trunk/qpid/dotnet/client-010/perftest/PerfTest.cs create mode 100644 trunk/qpid/dotnet/client-010/perftest/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/perftest/README.txt create mode 100644 trunk/qpid/dotnet/client-010/perftest/default.build create mode 100644 trunk/qpid/dotnet/client-010/perftest/perftest.csproj create mode 100644 trunk/qpid/dotnet/client-010/test/Helpers/ConfigHelpers.cs create mode 100644 trunk/qpid/dotnet/client-010/test/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/test/Qpid Test.dll.config create mode 100644 trunk/qpid/dotnet/client-010/test/Test.csproj create mode 100644 trunk/qpid/dotnet/client-010/test/default.build create mode 100644 trunk/qpid/dotnet/client-010/test/interop/Admin.cs create mode 100644 trunk/qpid/dotnet/client-010/test/interop/ApplicationHeaders.cs create mode 100644 trunk/qpid/dotnet/client-010/test/interop/ConnectionTests.cs create mode 100644 trunk/qpid/dotnet/client-010/test/interop/Message.cs create mode 100644 trunk/qpid/dotnet/client-010/test/interop/TestCase.cs create mode 100644 trunk/qpid/dotnet/client-010/test/transport/util/ByteEncoderTest.cs create mode 100644 trunk/qpid/dotnet/client-010/test/transport/util/CircularBufferTest.cs create mode 100644 trunk/qpid/dotnet/client-010/test/transport/util/ResultFutureTest.cs create mode 100644 trunk/qpid/dotnet/client-010/test/transport/util/SerialTest.cs create mode 100644 trunk/qpid/dotnet/client-010/test/transport/util/UUIDTest.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/ConfigDemo.suo create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/Demo.suo create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingClient/Form1.Designer.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingClient/Form1.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingClient/Form1.resx create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingClient/Program.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingClient/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingClient/Properties/Resources.Designer.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingClient/Properties/Resources.resx create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingClient/Properties/Settings.Designer.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingClient/Properties/Settings.settings create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingClient/wcBookingClient.csproj create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingServer/Booking.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingServer/IBooking.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingServer/Order.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingServer/Program.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingServer/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingServer/Receipt.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfBookingServer/wcfBookingServer.csproj create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloClient/App.config create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloClient/HelloClient.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloClient/IHelloService.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloClient/Program.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloClient/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloClient/wcfHelloClient.csproj create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloServer/App.config create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloServer/HelloService.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloServer/IHelloService.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloServer/Program.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloServer/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfHelloServer/wcfHelloServer.csproj create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfRPC/IUpperCase.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfRPC/Program.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfRPC/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfRPC/QpidBindingConfigurationElement.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfRPC/UpperCase.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/demo/wcfRPC/wcfRPC.csproj create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/CommunicationOperation.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidBinding.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidChannelBase.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidChannelFactory.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidChannelListener.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidChannelListenerBase.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidInputChannel.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidInputChannelBase.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidOutputChannel.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidOutputChannelBase.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidTransportBindingElement.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/model/QpidTransportElement.cs create mode 100644 trunk/qpid/dotnet/client-010/wcf/wcf.csproj create mode 100644 trunk/qpid/dotnet/client-010/wcf/wcf.sln create mode 100644 trunk/qpid/dotnet/client-010/wcf/wcf.suo create mode 100644 trunk/qpid/dotnet/default.build create mode 100644 trunk/qpid/etc/LICENSE create mode 100644 trunk/qpid/etc/NOTICE create mode 100644 trunk/qpid/etc/svn-auto-props create mode 100644 trunk/qpid/extras/sasl/LICENSE create mode 100644 trunk/qpid/extras/sasl/Makefile.am create mode 100755 trunk/qpid/extras/sasl/bootstrap create mode 100755 trunk/qpid/extras/sasl/build-aux/compile create mode 100755 trunk/qpid/extras/sasl/build-aux/config.guess create mode 100755 trunk/qpid/extras/sasl/build-aux/config.rpath create mode 100755 trunk/qpid/extras/sasl/build-aux/config.sub create mode 100755 trunk/qpid/extras/sasl/build-aux/depcomp create mode 100755 trunk/qpid/extras/sasl/build-aux/install-sh create mode 100755 trunk/qpid/extras/sasl/build-aux/mdate-sh create mode 100755 trunk/qpid/extras/sasl/build-aux/missing create mode 100644 trunk/qpid/extras/sasl/configure.ac create mode 100644 trunk/qpid/extras/sasl/include/saslwrapper.h create mode 100644 trunk/qpid/extras/sasl/m4/ac_pkg_swig.m4 create mode 100644 trunk/qpid/extras/sasl/m4/clock_time.m4 create mode 100644 trunk/qpid/extras/sasl/m4/compiler-flags.m4 create mode 100644 trunk/qpid/extras/sasl/m4/cppunit.m4 create mode 100644 trunk/qpid/extras/sasl/m4/extensions.m4 create mode 100644 trunk/qpid/extras/sasl/m4/libtool.m4 create mode 100644 trunk/qpid/extras/sasl/m4/ltoptions.m4 create mode 100644 trunk/qpid/extras/sasl/m4/ltsugar.m4 create mode 100644 trunk/qpid/extras/sasl/m4/ltversion.m4 create mode 100644 trunk/qpid/extras/sasl/m4/lt~obsolete.m4 create mode 100644 trunk/qpid/extras/sasl/m4/python.m4 create mode 100644 trunk/qpid/extras/sasl/python/Makefile.am create mode 100644 trunk/qpid/extras/sasl/python/python.i create mode 100644 trunk/qpid/extras/sasl/ruby/Makefile.am create mode 100644 trunk/qpid/extras/sasl/ruby/ruby.i create mode 100644 trunk/qpid/extras/sasl/src/Makefile.am create mode 100644 trunk/qpid/extras/sasl/src/cyrus/saslwrapper.cpp create mode 100644 trunk/qpid/extras/sasl/src/saslwrapper.i create mode 100644 trunk/qpid/gentools/LICENSE create mode 100644 trunk/qpid/gentools/NOTICE create mode 100644 trunk/qpid/gentools/README create mode 100644 trunk/qpid/gentools/README.txt create mode 100755 trunk/qpid/gentools/build create mode 100644 trunk/qpid/gentools/build.xml create mode 100644 trunk/qpid/gentools/lib/LICENSE create mode 100644 trunk/qpid/gentools/lib/NOTICE create mode 100644 trunk/qpid/gentools/lib/README.txt create mode 100644 trunk/qpid/gentools/lib/velocity-1.4.jar create mode 100644 trunk/qpid/gentools/lib/velocity-dep-1.4.jar create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpClass.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpClassMap.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpConstant.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpConstantSet.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomain.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainMap.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainVersionMap.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpField.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFieldMap.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFlagMap.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethod.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethodMap.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpModel.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpOrdinalFieldMap.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpOrdinalVersionMap.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpOverloadedParameterMap.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpParseException.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpTemplateException.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpTypeMappingException.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersion.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersionSet.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/BitFieldGenerateMethod.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/CommandGenerateMethod.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/ConsolidatedField.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/DotnetGenerator.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/GenerateMethod.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/Generator.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/JavaGenerator.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/LanguageConverter.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/Main.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/MangledGenerateMethod.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/NodeAware.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/Printable.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/SingleVersionClass.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/SingleVersionField.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/SingleVersionMethod.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/SingleVersionModel.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/TargetDirectoryException.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/Utils.java create mode 100644 trunk/qpid/gentools/src/org/apache/qpid/gentools/VersionConsistencyCheck.java create mode 100644 trunk/qpid/gentools/templ.cpp/method/MethodBodyClass.h.tmpl create mode 100644 trunk/qpid/gentools/templ.cpp/model/AMQP_ClientOperations.h.tmpl create mode 100644 trunk/qpid/gentools/templ.cpp/model/AMQP_ClientProxy.cpp.tmpl create mode 100644 trunk/qpid/gentools/templ.cpp/model/AMQP_ClientProxy.h.tmpl create mode 100644 trunk/qpid/gentools/templ.cpp/model/AMQP_Constants.h.tmpl create mode 100644 trunk/qpid/gentools/templ.cpp/model/AMQP_HighestVersion.h.tmpl create mode 100644 trunk/qpid/gentools/templ.cpp/model/AMQP_MethodVersionMap.cpp.tmpl create mode 100644 trunk/qpid/gentools/templ.cpp/model/AMQP_MethodVersionMap.h.tmpl create mode 100644 trunk/qpid/gentools/templ.cpp/model/AMQP_ServerOperations.h.tmpl create mode 100644 trunk/qpid/gentools/templ.cpp/model/AMQP_ServerProxy.cpp.tmpl create mode 100644 trunk/qpid/gentools/templ.cpp/model/AMQP_ServerProxy.h.tmpl create mode 100644 trunk/qpid/gentools/templ.java/PropertyContentHeaderClass.tmpl create mode 100644 trunk/qpid/gentools/templ.java/method/version/MethodBodyClass.vm create mode 100644 trunk/qpid/gentools/templ.java/model/ProtocolVersionListClass.vm create mode 100644 trunk/qpid/gentools/templ.java/model/version/AmqpConstantsClass.vm create mode 100644 trunk/qpid/gentools/templ.java/model/version/MethodRegistryClass.vm create mode 100644 trunk/qpid/gentools/xml-src/amqp-0.10.test.xml create mode 100644 trunk/qpid/gentools/xml-src/amqp-0.8.test.xml create mode 100644 trunk/qpid/gentools/xml-src/amqp-0.9.test.xml create mode 100644 trunk/qpid/gentools/xml-src/cluster-0.9.test.xml create mode 100644 trunk/qpid/java/broker-plugins/MANIFEST.MF create mode 100644 trunk/qpid/java/broker-plugins/build.xml create mode 100644 trunk/qpid/java/broker-plugins/src/main/java/org/apache/qpid/extras/Activator.java create mode 100644 trunk/qpid/java/broker-plugins/src/main/java/org/apache/qpid/extras/exchanges/diagnostic/DiagnosticExchange.java create mode 100644 trunk/qpid/java/broker-plugins/src/main/java/org/apache/qpid/extras/exchanges/diagnostic/DiagnosticExchangeType.java create mode 100644 trunk/qpid/java/broker-plugins/src/main/java/org/apache/qpid/extras/exchanges/example/TestExchange.java create mode 100644 trunk/qpid/java/broker-plugins/src/main/java/org/apache/qpid/extras/exchanges/example/TestExchangeType.java create mode 100644 trunk/qpid/java/broker/bin/create-example-ssl-stores.bat create mode 100755 trunk/qpid/java/broker/bin/create-example-ssl-stores.sh create mode 100755 trunk/qpid/java/broker/bin/msTool.sh create mode 100755 trunk/qpid/java/broker/bin/qpid-passwd create mode 100755 trunk/qpid/java/broker/bin/qpid-server create mode 100755 trunk/qpid/java/broker/bin/qpid-server-bdb.bat create mode 100644 trunk/qpid/java/broker/bin/qpid-server.bat create mode 100755 trunk/qpid/java/broker/bin/qpid.start create mode 100755 trunk/qpid/java/broker/bin/qpid.stop create mode 100755 trunk/qpid/java/broker/bin/qpid.stopall create mode 100644 trunk/qpid/java/broker/build.xml create mode 100644 trunk/qpid/java/broker/etc/access create mode 100644 trunk/qpid/java/broker/etc/config.xml create mode 100644 trunk/qpid/java/broker/etc/debug.log4j.xml create mode 100644 trunk/qpid/java/broker/etc/jmxremote.access create mode 100644 trunk/qpid/java/broker/etc/log4j.xml create mode 100644 trunk/qpid/java/broker/etc/md5passwd create mode 100644 trunk/qpid/java/broker/etc/mstool-log4j.xml create mode 100644 trunk/qpid/java/broker/etc/passwd create mode 100644 trunk/qpid/java/broker/etc/passwdVhost create mode 100644 trunk/qpid/java/broker/etc/persistent_config.xml create mode 100644 trunk/qpid/java/broker/etc/qpid-server.conf create mode 100644 trunk/qpid/java/broker/etc/qpid-server.conf.jpp create mode 100644 trunk/qpid/java/broker/etc/qpid.passwd create mode 100644 trunk/qpid/java/broker/etc/transient_config.xml create mode 100755 trunk/qpid/java/broker/python-test.xml create mode 100644 trunk/qpid/java/broker/scripts/resetAlerting.sh create mode 100644 trunk/qpid/java/broker/src/main/grammar/SelectorParser.jj create mode 100644 trunk/qpid/java/broker/src/main/java/log4j.properties create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/log4j/QpidCompositeRollingAppender.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/log4j/xml/QpidLog4JConfigurator.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/configuration/Configuration.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/ExtractResendAndRequeue.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/ManagedChannel.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/ack/UnacknowledgedMessageMap.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/ack/UnacknowledgedMessageMapImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ExchangeConfiguration.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/SecurityConfiguration.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/management/ConfigurationManagementMBean.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/Exchange.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeInUseException.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeInitialiser.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeReferrer.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeType.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersBinding.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/Index.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/MessageRouter.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/headers/HeaderKey.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/headers/HeaderKeyDictionary.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/headers/HeaderMatcherResult.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/headers/HeadersMatcherDFAState.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/headers/HeadersParser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherDFAState.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherResult.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicParser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicWord.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicWordDictionary.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ArithmeticExpression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/BinaryExpression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/BooleanExpression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ComparisonExpression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ConstantExpression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/Expression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/FilterManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/FilterManagerFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/JMSSelectorFilter.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/LogicExpression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/MessageFilter.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/NoConsumerFilter.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/PropertyExpression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/SimpleFilterManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/UnaryExpression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/XPathExpression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/XQueryExpression.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/XalanXPathEvaluator.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/AbstractFlowCreditManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/BytesOnlyCreditManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/CreditCreditManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/FlowCreditManager.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/FlowCreditManager_0_10.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/LimitlessCreditManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/MessageAndBytesCreditManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/MessageOnlyCreditManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/Pre0_10CreditManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/WindowCreditManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/AccessRequestHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicAckMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicCancelMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicConsumeMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicGetMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicPublishMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicQosHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicRecoverMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicRecoverSyncMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicRejectMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ChannelCloseHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ChannelCloseOkHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ChannelFlowHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ChannelOpenHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionCloseMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionCloseOkMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionOpenMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionSecureOkMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionStartOkMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionTuneOkMethodHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeBoundHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeleteHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/OnCurrentThreadExecutor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeleteHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueuePurgeHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueUnbindHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ServerMethodDispatcherImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ServerMethodDispatcherImpl_0_9.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ServerMethodDispatcherImpl_0_91.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ServerMethodDispatcherImpl_8_0.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/TxCommitHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/TxRollbackHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/TxSelectHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/UnexpectedMethodException.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/information/management/ServerInformationMBean.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/LogActor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/LogMessage.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/LogSubject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/RawMessageLogger.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLoggerImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/StartupRootMessageLogger.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AMQPChannelActor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AMQPConnectionActor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/BrokerActor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/CurrentActor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/ManagementActor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/QueueActor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/actors/SubscriptionActor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/LoggingManagementMBean.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/messages/LogMessages.properties create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLogger.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/SystemOutMessageLogger.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/AbstractLogSubject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/BindingLogSubject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/QueueLogSubject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/AMQManagedObject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/DefaultManagedObject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/JMXManagedObjectRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanIntrospector.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/Managable.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/ManagedObject.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/ManagedObjectRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management/NoopManagedObjectRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/AMQMessage.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/AMQMessageHeader.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/AMQMessageReference.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/ContentHeaderBodyAdapter.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/EnqueableMessage.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/InboundMessage.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageContentSource.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_0_10.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageReference.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageTransferHeader.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageTransferMessage.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/ServerMessage.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/TransferMessageReference.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/output/HeaderPropertiesConverter.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/output/ProtocolOutputConverter.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/output/ProtocolOutputConverterRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_8/ProtocolOutputConverterImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_9/ProtocolOutputConverterImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_9_1/ProtocolOutputConverterImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/Activator.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQNoMethodHandlerException.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngineFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSession.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBean.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngineFactory_0_10.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_0_10.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/UnknnownMessageTypeException.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQPriorityQueue.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/DefaultQueueRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ExchangeBinding.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ExchangeBindings.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/FailedDequeueException.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/Filterable.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/InboundMessageAdapter.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/IncomingMessage.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/MessageCleanupException.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/PriorityQueueList.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueContext.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueEntry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueEntryImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueEntryIterator.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueEntryList.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueEntryListFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueNotificationListener.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/QueueRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleQueueEntryList.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SubFlushRunner.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ConfigurationFileApplicationRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/IApplicationRegistry.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/PrincipalHolder.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ACLManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ACLPlugin.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ACLPluginFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/AccessResult.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/AccessRights.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/Accessable.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/AuthorizationManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/Permission.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/PrincipalPermissions.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/VirtualHostAccess.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/management/AMQUserManagementMBean.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/plugins/AbstractACLPlugin.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/plugins/AllowAll.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/plugins/BasicACLPlugin.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/plugins/DenyAll.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/plugins/LegacyAccessPlugin.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/plugins/SimpleXML.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/plugins/network/FirewallPlugin.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/AuthenticationResult.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/ConfigurationFilePrincipalDatabaseManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/HashedUser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainUser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PrincipalDatabase.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PrincipalDatabaseManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabaseManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/rmi/RMIPasswordAuthenticator.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/AuthenticationProviderInitialiser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/JCAProvider.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/UsernamePasswordInitialiser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/UsernamePrincipal.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/amqplain/AmqPlainInitialiser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/amqplain/AmqPlainSaslServer.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/amqplain/AmqPlainSaslServerFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HashedInitialiser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HashedSaslServer.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HashedServerFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexSaslServer.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexServerFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5Initialiser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/plain/PlainInitialiser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServer.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServerFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/state/AMQState.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/state/AMQStateManager.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/state/IllegalStateTransitionException.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/state/StateAwareMethodListener.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/state/StateListener.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/AbstractMessageStore.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/ConfigurationRecoveryHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DurableConfigurationStore.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/MemoryMessageStore.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/MessageMetaDataType.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/MessageStore.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/MessageStoreClosedException.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/MessageStoreRecoveryHandler.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/StorableMessageMetaData.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/StoreContext.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/StoredMessage.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/TransactionLog.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/TransactionLogRecoveryHandler.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/TransactionLogResource.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/ClientDeliveryMethod.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/ExplicitAcceptDispositionChangeListener.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/ImplicitAcceptDispositionChangeListener.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/MessageAcceptCompletionListener.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/RecordDeliveryMethod.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionFactory.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionFactoryImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionList.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/QpidAcceptor.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnectionDelegate.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ThreadPoolFilter.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/AutoCommitTransaction.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/LocalTransaction.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/ServerTransaction.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/util/CircularBuffer.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/util/LoggingProxy.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/ManagedVirtualHost.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java create mode 100755 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/MessageStoreTool.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/AbstractCommand.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Clear.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Command.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Copy.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Help.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/List.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Load.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Move.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Purge.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Quit.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Select.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Show.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/security/Passwd.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/utils/CommandParser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/utils/Console.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/utils/SimpleCommandParser.java create mode 100644 trunk/qpid/java/broker/src/main/java/org/apache/qpid/tools/utils/SimpleConsole.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/log4j/xml/QpidLog4JConfiguratorTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/ExtractResendAndRequeueTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/RunBrokerWithCommand.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/SelectorParserTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/ack/AcknowledgeTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/TestPropertyUtils.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/LogMessageTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/RootMessageLoggerImplTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/AMQPChannelActorTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/BaseActorTestCase.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/BaseConnectionActorTestCase.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/CurrentActorTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/ManagementActorTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/QueueActorTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/SubscriptionActorTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/actors/TestLogActor.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/management/LoggingManagementMBeanTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/BindingMessagesTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/BrokerMessagesTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ChannelMessagesTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ManagementConsoleMessagesTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/MessageStoreMessagesTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/QueueMessagesTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/SubscriptionMessagesTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/VirtualHostMessagesTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLoggerTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/UnitTestMessageLogger.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/UnitTestMessageLoggerTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/ChannelLogSubjectTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubjectTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubjectTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/QueueLogSubjectTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubjectTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/TestBlankSubject.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/MockPluginManager.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/PluginTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBeanTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/InternalTestProtocolSession.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MaxChannelsTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQPriorityQueueTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueAlertTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AckTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQMessage.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/MockMessagePublishInfo.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java create mode 100755 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/MockStoredMessage.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueThreadPoolTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/registry/ApplicationRegistryShutdownTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/securiity/auth/sasl/CRAMMD5HexInitialiserTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/access/ACLManagerTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/access/ExchangeDenier.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/access/PrincipalPermissionsTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/access/QueueDenier.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/access/management/AMQUserManagementMBeanTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/access/plugins/network/FirewallPluginTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/HashedUserTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PlainUserTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/rmi/RMIPasswordAuthenticatorTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/SaslServerTestCase.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/TestPrincipalDatabase.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/amqplain/AMQPlainSaslServerTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServerTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreShutdownTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/SkeletonMessageStore.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/TestMemoryMessageStore.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/TestReferenceCounting.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/store/TestableMemoryMessageStore.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/QueueBrowserUsesNoAckTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/util/LoggingProxyTest.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/util/NullApplicationRegistry.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java create mode 100644 trunk/qpid/java/broker/src/test/java/org/apache/qpid/util/MockChannel.java create mode 100644 trunk/qpid/java/broker/src/velocity/java/org/apache/qpid/server/logging/GenerateLogMessages.java create mode 100644 trunk/qpid/java/broker/src/velocity/templates/org/apache/qpid/server/logging/messages/LogMessages.vm create mode 100644 trunk/qpid/java/build.deps create mode 100644 trunk/qpid/java/build.xml create mode 100644 trunk/qpid/java/client/build.xml create mode 100644 trunk/qpid/java/client/example/bin/README.txt create mode 100644 trunk/qpid/java/client/example/bin/set_classpath.bat create mode 100755 trunk/qpid/java/client/example/bin/set_classpath.sh create mode 100755 trunk/qpid/java/client/example/bin/verify_all create mode 100644 trunk/qpid/java/client/example/build.xml create mode 100644 trunk/qpid/java/client/example/source-jar.xml create mode 100644 trunk/qpid/java/client/example/src/main/java/README.txt create mode 100644 trunk/qpid/java/client/example/src/main/java/log4j.xml create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/direct/DeclareQueue.java create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/direct/DirectProducer.java create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/direct/Listener.java create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/fanout/DeclareQueue.java create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/fanout/FannoutProducer.java create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/fanout/Listener.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/headers/DeclareQueue.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/headers/Listener.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/headers/Producer.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/lvq/DeclareLVQueue.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/lvq/Listener.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/lvq/Producer.java create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/pubsub/TopicListener.java create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/amqpexample/pubsub/TopicPublisher.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/Consumer.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/Listener.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/Producer.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/direct.properties create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/verify create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/verify.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/verify_cpp_java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/verify_cpp_java.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/verify_java_cpp create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/verify_java_cpp.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/verify_java_python create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/verify_java_python.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/verify_python_java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/direct/verify_python_java.in create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/Consumer.java create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/Listener.java create mode 100755 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/Producer.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/fanout.properties create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/verify create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/verify.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/verify_cpp_java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/verify_cpp_java.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/verify_java_cpp create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/verify_java_cpp.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/verify_java_python create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/verify_java_python.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/verify_python_java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/fanout/verify_python_java.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/Listener.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/Publisher.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/pubsub.properties create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/verify create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/verify.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/verify_cpp_java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/verify_cpp_java.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/verify_java_cpp create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/verify_java_cpp.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/verify_java_python create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/verify_java_python.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/verify_python_java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/pubsub/verify_python_java.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/Client.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/Server.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/requestResponse.properties create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/verify create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/verify.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/verify_cpp_java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/verify_cpp_java.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/verify_java_cpp create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/verify_java_cpp.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/verify_java_python create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/verify_java_python.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/verify_python_java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/requestResponse/verify_python_java.in create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/transacted/QueueToTopic.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/jmsexample/transacted/transacted.properties create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/publisher/FileMessageDispatcher.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/publisher/FileMessageFactory.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/publisher/MessageFactoryException.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/publisher/MonitorMessageDispatcher.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/publisher/MonitorPublisher.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/publisher/MultiMessageDispatcher.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/publisher/Publisher.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/publisher/TopicPublisher.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/publisher/UndeliveredMessageException.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/pubsub/Client.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/pubsub/ConnectionSetup.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/pubsub/Publisher.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/pubsub/Subscriber.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/shared/ConnectionException.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/shared/ContextException.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/shared/FileUtils.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/shared/InitialContextHelper.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/shared/Statics.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/shared/example.properties create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/simple/reqresp/Client.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/simple/reqresp/Server.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/subscriber/MonitoredSubscriber.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/subscriber/MonitoredSubscriptionWrapper.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/subscriber/Subscriber.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/subscriber/SubscriptionWrapper.java create mode 100644 trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/transport/ExistingSocketConnectorDemo.java create mode 100755 trunk/qpid/java/client/example/src/main/java/runSample.sh create mode 100644 trunk/qpid/java/client/src/main/grammar/SelectorParser.jj create mode 100755 trunk/qpid/java/client/src/main/java/client.bnd create mode 100644 trunk/qpid/java/client/src/main/java/client.log4j create mode 100644 trunk/qpid/java/client/src/main/java/log4j.xml create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/mina/transport/socket/nio/ExistingSocketConnector.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQAnyDestination.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQAuthenticationException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java create mode 100755 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_9.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java create mode 100755 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_9_1.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionURL.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQHeadersExchange.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQNoConsumersException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQNoRouteException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQQueue.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQQueueSessionAdaptor.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSessionAdapter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSessionDirtyException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQTemporaryQueue.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQTemporaryTopic.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQTopicSessionAdaptor.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQUndefinedDestination.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_8.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_8.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/Closeable.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/ConnectionTuneParameters.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/CustomJMSXProperty.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/DispatcherCallback.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/JMSAMQException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/JmsNotImplementedException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/MessageConsumerPair.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/QpidConnectionMetaData.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/QueueReceiverAdaptor.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/SSLConfiguration.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/TemporaryDestination.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/TopicPublisherAdapter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/TopicSubscriberAdaptor.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/XAConnectionImpl.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/XAResourceImpl.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/XASessionImpl.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/configuration/ClientProperties.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/failover/FailoverException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/failover/FailoverHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/failover/FailoverNoopSupport.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/failover/FailoverProtectedOperation.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/failover/FailoverRetrySupport.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/failover/FailoverState.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/failover/FailoverSupport.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/AccessRequestOkMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/BasicCancelOkMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/BasicDeliverMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/BasicReturnMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseOkMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ChannelFlowMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ChannelFlowOkMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl_0_9.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl_0_91.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ClientMethodDispatcherImpl_8_0.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionCloseMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionOpenOkMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionRedirectMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionSecureMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ExchangeBoundOkMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/QueueDeleteOkMethodHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegateFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_8.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractBytesTypedMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessageFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/CloseConsumerMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/FiledTableSupport.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSBytesMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSBytesMessageFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSHeaderAdapter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessageFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessageFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSStreamMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSStreamMessageFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSTextMessageFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageConverter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/ReturnMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/UnprocessedMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/UnprocessedMessage_0_10.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/UnprocessedMessage_0_8.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/BlockingMethodFrameListener.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/HeartbeatConfig.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/HeartbeatDiagnostics.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/ProtocolBufferMonitorFilter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/AMQCallbackHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/DynamicSaslRegistrar.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/DynamicSaslRegistrar.properties create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/JCAProvider.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/UsernameHashedPasswordCallbackHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/UsernamePasswordCallbackHandler.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/amqplain/AmqPlainSaslClient.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/amqplain/AmqPlainSaslClientFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/crammd5hashed/CRAMMD5HashedSaslClientFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/state/AMQMethodNotImplementedException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/state/AMQState.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/state/AMQStateChangedEvent.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/state/AMQStateListener.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/state/StateAwareMethodListener.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/state/listener/SpecificMethodFrameListener.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/transport/AMQNoTransportForProtocolException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/transport/AMQTransportConnectionException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/transport/ITransportConnection.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/transport/SocketTransportConnection.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/transport/VmPipeTransportConnection.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/url/URLParser.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/url/URLParser_0_10.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/util/BlockingWaiter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/util/FlowControllingBlockingQueue.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/client/vmbroker/AMQVMBrokerCreationException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/ArithmeticExpression.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/BinaryExpression.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/BooleanExpression.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/ComparisonExpression.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/ConstantExpression.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/Expression.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/JMSSelectorFilter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/LogicExpression.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/MessageFilter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/PropertyExpression.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/filter/UnaryExpression.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/ChannelLimitReachedException.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/Connection.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/ConnectionListener.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/ConnectionURL.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/FailoverPolicy.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/Message.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/MessageConsumer.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/MessageProducer.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/Session.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/TopicSubscriber.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverExchangeMethod.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverMethod.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverRoundRobinServers.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverSingleServer.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/NoFailover.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jndi/Example.properties create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jndi/NameParserImpl.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/jndi/ReadOnlyContext.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/naming/ReadOnlyContext.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/naming/jndi.properties create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/nclient/MessagePartListener.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/nclient/util/ByteBufferMessage.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/nclient/util/MessageListener.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/nclient/util/MessagePartListenerAdapter.java create mode 100644 trunk/qpid/java/client/src/main/java/org/apache/qpid/njms/ExceptionHelper.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/IBMPerfTest/JNDIBindConnectionFactory.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/IBMPerfTest/JNDIBindQueue.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/IBMPerfTest/JNDIBindTopic.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/IBMPerfTest/README.txt create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/cluster/Client.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/BasicDeliverTest.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/Client.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/codec/Server.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/config/AMQConnectionFactoryInitialiser.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/config/AbstractConfig.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/config/ConnectionFactoryInitialiser.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/config/Connector.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/config/ConnectorConfig.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/config/JBossConnectionFactoryInitialiser.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/flow/ChannelFlowTest.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/fragmentation/TestLargePublisher.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/fragmentation/TestLargeSubscriber.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Listener.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/MessageFactory.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/headers/Publisher.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/jndi/referenceable/Bind.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/jndi/referenceable/Lookup.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/jndi/referenceable/Unbind.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/latency/LatencyTest.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/mina/AcceptorTest.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/mina/BlockingAcceptorTest.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/mina/WriterTest.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/multiconsumer/AMQTest.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/pubsub1/TestPublisher.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/pubsub1/TestSubscriber.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/test/unit/client/connection/TestManyConnections.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/test/unit/jndi/PropertiesFileInitialContextFactoryTest.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/test/unit/jndi/example.properties create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/topic/Config.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/topic/Listener.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/topic/MessageFactory.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/topic/Publisher.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/transacted/Config.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/transacted/Ping.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/transacted/Pong.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/transacted/Relay.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/transacted/Start.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/weblogic/ServiceProvider.java create mode 100644 trunk/qpid/java/client/src/old_test/java/org/apache/qpid/weblogic/ServiceRequestingClient.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/mina/transport/vmpipe/support/VmPipeIdleStatusChecker.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/client/AMQQueueTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/client/MockAMQConnection.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/client/message/AbstractJMSMessageTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/client/message/TestMessageHelper.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/client/protocol/AMQProtocolHandlerTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/client/protocol/MockIoSession.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTableKeyEnumeratorTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/FieldTablePropertyTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/BrokerDetails/BrokerDetailsTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/channelclose/ChannelCloseMethodHandlerNoCloseOk.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/channelclose/NoCloseOKStateManager.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connectionurl/ConnectionURLTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/destinationurl/DestinationURLTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/BytesMessageTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/StreamMessageTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/TextMessageTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/jndi/ConnectionFactoryTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/jndi/JNDIPropertyFileTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/jndi/JNDITest.properties create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/MessageConverterTest.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/NonQpidMessage.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/TestAMQSession.java create mode 100644 trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/tests.properties create mode 100644 trunk/qpid/java/client/test/bin/IBM-JNDI-Setup.bat create mode 100755 trunk/qpid/java/client/test/bin/IBM-JNDI-Setup.sh create mode 100644 trunk/qpid/java/client/test/bin/IBM-Publisher.bat create mode 100755 trunk/qpid/java/client/test/bin/IBM-Publisher.sh create mode 100644 trunk/qpid/java/client/test/bin/IBM-PutGet.bat create mode 100755 trunk/qpid/java/client/test/bin/IBM-PutGet.sh create mode 100644 trunk/qpid/java/client/test/bin/IBM-README.txt create mode 100644 trunk/qpid/java/client/test/bin/IBM-Receiver.bat create mode 100755 trunk/qpid/java/client/test/bin/IBM-Receiver.sh create mode 100644 trunk/qpid/java/client/test/bin/IBM-Sender.bat create mode 100755 trunk/qpid/java/client/test/bin/IBM-Sender.sh create mode 100644 trunk/qpid/java/client/test/bin/IBM-Subscriber.bat create mode 100755 trunk/qpid/java/client/test/bin/IBM-Subscriber.sh create mode 100755 trunk/qpid/java/client/test/bin/headersListener.sh create mode 100755 trunk/qpid/java/client/test/bin/headersListenerGroup.sh create mode 100755 trunk/qpid/java/client/test/bin/headersPublisher.sh create mode 100755 trunk/qpid/java/client/test/bin/run_many.sh create mode 100755 trunk/qpid/java/client/test/bin/serviceProvidingClient.sh create mode 100755 trunk/qpid/java/client/test/bin/serviceRequestingClient.sh create mode 100755 trunk/qpid/java/client/test/bin/testService.sh create mode 100755 trunk/qpid/java/client/test/bin/topicListener.sh create mode 100755 trunk/qpid/java/client/test/bin/topicPublisher.sh create mode 100644 trunk/qpid/java/client/test/etc/ApacheDS.properties create mode 100644 trunk/qpid/java/client/test/example_build.xml create mode 100644 trunk/qpid/java/common.xml create mode 100644 trunk/qpid/java/common/Composite.tpl create mode 100644 trunk/qpid/java/common/Constant.tpl create mode 100644 trunk/qpid/java/common/Enum.tpl create mode 100644 trunk/qpid/java/common/Invoker.tpl create mode 100644 trunk/qpid/java/common/MethodDelegate.tpl create mode 100644 trunk/qpid/java/common/Option.tpl create mode 100644 trunk/qpid/java/common/StructFactory.tpl create mode 100644 trunk/qpid/java/common/Type.tpl create mode 100755 trunk/qpid/java/common/bin/qpid-run create mode 100644 trunk/qpid/java/common/build.xml create mode 100755 trunk/qpid/java/common/codegen create mode 100644 trunk/qpid/java/common/etc/qpid-run.conf create mode 100644 trunk/qpid/java/common/etc/qpid-run.conf.dev create mode 100644 trunk/qpid/java/common/genutil.py create mode 100644 trunk/qpid/java/common/protocol-version.xml create mode 100644 trunk/qpid/java/common/readme.txt create mode 100755 trunk/qpid/java/common/src/main/java/common.bnd create mode 100644 trunk/qpid/java/common/src/main/java/log4j.properties create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/common/FixedSizeByteBufferAllocator.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/common/support/DefaultIoFuture.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/common/support/IoServiceListenerSupport.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/filter/WriteBufferFullExeception.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/filter/WriteBufferLimitFilterBuilder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/filter/codec/OurCumulativeProtocolDecoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/filter/codec/QpidProtocolCodecFilter.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/transport/socket/nio/MultiThreadSocketAcceptor.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/transport/socket/nio/MultiThreadSocketConnector.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/transport/socket/nio/MultiThreadSocketFilterChain.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/transport/socket/nio/MultiThreadSocketIoProcessor.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/transport/socket/nio/MultiThreadSocketSessionConfigImpl.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/transport/socket/nio/MultiThreadSocketSessionImpl.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/mina/transport/vmpipe/QpidVmPipeConnector.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQChannelClosedException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQChannelException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQConnectionClosedException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQConnectionFailureException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQDisconnectedException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQInvalidArgumentException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQInvalidRoutingKeyException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQPInvalidClassException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQProtocolException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQTimeoutException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQUndeliveredException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQUnknownExchangeType.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQUnresolvedAddressException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/ConsoleOutput.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/ErrorCode.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/QpidConfig.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/QpidException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/SerialException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/ToyBroker.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/ToyClient.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/ToyExchange.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/api/Message.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/codec/AMQCodecFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/codec/AMQDecoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/codec/AMQEncoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/common/AMQPFilterTypes.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/common/ClientProperties.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/common/QpidProperties.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/configuration/Configured.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/configuration/PropertyException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/configuration/PropertyUtils.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/dtx/XidImpl.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQBody.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlock.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockEncoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQFrame.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQFrameDecodingException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyImpl.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyInstanceFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQMethodFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQProtocolClassException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQProtocolHeaderException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQProtocolInstanceException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQProtocolVersionException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQShortStringTokenizer.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQType.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQTypeMap.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQTypedValue.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/BodyFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/CommonContentHeaderProperties.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/CompositeAMQDataBlock.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/Content.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentBody.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentBodyFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBodyFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderProperties.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderPropertiesFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/DeferredDataBlock.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/EncodableAMQDataBlock.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/FieldTableFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/HeartbeatBody.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/HeartbeatBodyFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/SmallCompositeAMQDataBlock.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/VersionSpecificRegistry.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/abstraction/AbstractMethodConverter.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/abstraction/ContentChunk.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/abstraction/MessagePublishInfo.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/abstraction/MessagePublishInfoConverter.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/abstraction/MessagePublishInfoImpl.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/abstraction/ProtocolVersionMethodConverter.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/amqp_0_9/AMQMethodBody_0_9.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/amqp_0_9/MethodConverter_0_9.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/amqp_0_91/AMQMethodBody_0_91.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/amqp_0_91/MethodConverter_0_91.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/amqp_8_0/AMQMethodBody_8_0.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/amqp_8_0/MethodConverter_8_0.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/pool/Job.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/pool/ReadWriteJobQueue.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/pool/ReadWriteRunnable.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/pool/ReferenceCountingExecutorService.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/protocol/AMQConstant.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/protocol/AMQMethodEvent.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/protocol/AMQMethodListener.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/protocol/AMQProtocolWriter.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/protocol/AMQVersionAwareProtocolSession.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/protocol/ProtocolEngine.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/protocol/ProtocolEngineFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/protocol/ProtocolVersionAware.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/security/AMQPCallbackHandler.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/security/UsernamePasswordCallbackHandler.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/ssl/SSLContextFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/thread/DefaultThreadFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/thread/QpidThreadExecutor.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/thread/RealtimeThreadFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/thread/ThreadFactory.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/thread/Threading.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Binary.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Binding.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ConnectionDelegate.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ConnectionException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ConnectionListener.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Echo.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Field.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Future.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Header.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Method.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriver.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkDriverConfiguration.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/OpenException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolDelegate.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolError.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolEvent.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolVersionException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolViolationException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Range.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/RangeSet.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Receiver.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Result.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Sender.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SenderException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ServerDelegate.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionClosedException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionListener.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Sink.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Struct.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TransportException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/AbstractDecoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/AbstractEncoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/BBDecoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/BBEncoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/Decoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/Encodable.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/Encoder.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/ConnectionBinding.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/Disassembler.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/Frame.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/InputHandler.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/NetworkDelegate.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/NetworkEvent.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/InputHandler_0_9.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoAcceptor.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoReceiver.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoSender.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoTransport.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MINANetworkDriver.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MinaHandler.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MinaSender.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/nio/NioHandler.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/nio/NioSender.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/ssl/SSLReceiver.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/ssl/SSLSender.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Functions.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Logger.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/util/SliceIterator.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Waiter.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/url/BindingURL.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/url/BindingURLParser.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/url/URLHelper.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/url/URLSyntaxException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/CommandLineParser.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/ConcurrentLinkedMessageQueueAtomicSize.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/ConcurrentLinkedQueueAtomicSize.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/ConcurrentLinkedQueueNoSize.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/MessageQueue.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/NameUUIDGen.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/NetMatcher.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/PrettyPrintingUtils.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/RandomUUIDGen.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/Serial.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/Strings.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/UUIDGen.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/UUIDs.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/AlreadyUnblockedException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/BatchSynchQueue.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/BatchSynchQueueBase.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/BooleanLatch.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/Capacity.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/Condition.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/SynchBuffer.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/SynchException.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/SynchQueue.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/SynchRecord.java create mode 100644 trunk/qpid/java/common/src/main/java/org/apache/qpid/util/concurrent/SynchRef.java create mode 100644 trunk/qpid/java/common/src/main/resources/org/apache/qpid/ssl/qpid.cert create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/mina/SocketIOTest/IOWriterClient.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/mina/SocketIOTest/IOWriterServer.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/AMQExceptionTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/codec/MockAMQVersionAwareProtocolSession.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/framing/AMQShortStringTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/framing/BasicContentHeaderPropertiesTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/framing/abstraction/MessagePublishInfoImplTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/session/TestSession.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/thread/ThreadFactoryTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/transport/GenTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/transport/RangeSetTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/transport/TestNetworkDriver.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/transport/codec/BBEncoderTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/transport/network/mina/MINANetworkDriverTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/util/CommandLineParserTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/util/FileUtilsTest.java create mode 100644 trunk/qpid/java/common/src/test/java/org/apache/qpid/util/SerialTest.java create mode 100644 trunk/qpid/java/common/templates/method/MethodBodyInterface.vm create mode 100644 trunk/qpid/java/common/templates/method/version/MethodBodyClass.vm create mode 100644 trunk/qpid/java/common/templates/model/ClientMethodDispatcherInterface.vm create mode 100644 trunk/qpid/java/common/templates/model/MethodDispatcherInterface.vm create mode 100644 trunk/qpid/java/common/templates/model/MethodRegistryClass.vm create mode 100644 trunk/qpid/java/common/templates/model/ProtocolVersionListClass.vm create mode 100644 trunk/qpid/java/common/templates/model/ServerMethodDispatcherInterface.vm create mode 100644 trunk/qpid/java/common/templates/model/version/AmqpConstantsClass.vm create mode 100644 trunk/qpid/java/common/templates/model/version/ClientMethodDispatcherInterface.vm create mode 100644 trunk/qpid/java/common/templates/model/version/MethodDispatcherInterface.vm create mode 100644 trunk/qpid/java/common/templates/model/version/MethodRegistryClass.vm create mode 100644 trunk/qpid/java/common/templates/model/version/ServerMethodDispatcherInterface.vm create mode 100644 trunk/qpid/java/common/templating.py create mode 100644 trunk/qpid/java/doc/AMQBlazeDetailedDesign.vsd create mode 100644 trunk/qpid/java/doc/FramingClassDiagram.vsd create mode 100644 trunk/qpid/java/doc/Qpid-architecture.dia create mode 100644 trunk/qpid/java/doc/broker-0.5-network.dia create mode 100644 trunk/qpid/java/doc/broker-0.N-network-phase-1.dia create mode 100644 trunk/qpid/java/doc/broker-0.N-state.dia create mode 100644 trunk/qpid/java/doc/broker-overview.dia create mode 100644 trunk/qpid/java/doc/broker-priority-queue-subscription.dia create mode 100644 trunk/qpid/java/doc/broker-queue-subscription.dia create mode 100644 trunk/qpid/java/doc/client-0.5-connection-creation.dia create mode 100644 trunk/qpid/java/doc/client-0.5-network-processing.dia create mode 100644 trunk/qpid/java/doc/client-0.N-network-processing.dia create mode 100644 trunk/qpid/java/doc/common-0.N-network.dia create mode 100644 trunk/qpid/java/doc/network-driver-protocol-engine-sequence.dia create mode 100644 trunk/qpid/java/doc/noddy-network-blocks.dia create mode 100644 trunk/qpid/java/etc/code-style.xml create mode 100644 trunk/qpid/java/etc/coding_standards.xml create mode 100644 trunk/qpid/java/etc/license_header.txt create mode 100644 trunk/qpid/java/etc/log4j.xml create mode 100755 trunk/qpid/java/genpom create mode 100644 trunk/qpid/java/integrationtests/README.txt create mode 100755 trunk/qpid/java/integrationtests/bin/interoptests.py create mode 100644 trunk/qpid/java/integrationtests/build.xml create mode 100644 trunk/qpid/java/integrationtests/docs/RunningSustainedTests.txt create mode 100644 trunk/qpid/java/integrationtests/jar-with-dependencies.xml create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/interop/clienttestcases/TestCase1DummyRun.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/interop/clienttestcases/TestCase2BasicP2P.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/interop/clienttestcases/TestCase3BasicPubSub.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/interop/clienttestcases/TestCase4P2PMessageSize.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/interop/clienttestcases/TestCase5PubSubMessageSize.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/interop/testcases/InteropTestCase1DummyRun.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/interop/testcases/InteropTestCase2BasicP2P.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/interop/testcases/InteropTestCase3BasicPubSub.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/interop/testcases/InteropTestCase4P2PMessageSize.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/interop/testcases/InteropTestCase5PubSubMessageSize.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/sustained/SustainedClientTestCase.java create mode 100644 trunk/qpid/java/integrationtests/src/main/java/org/apache/qpid/sustained/SustainedTestCase.java create mode 100644 trunk/qpid/java/integrationtests/src/resources/sustained-log4j.xml create mode 100644 trunk/qpid/java/junit-toolkit/build.xml create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/DefaultThreadFactory.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/PossibleDeadlockException.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/TestRunnable.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/ThreadTestCoordinator.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/ThreadTestExample.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/package.html create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/AsymptoticTestCase.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/AsymptoticTestDecorator.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/BaseThrottle.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/BatchedThrottle.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/DurationTestDecorator.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/InstrumentedTest.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/NullResultPrinter.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/ParameterVariationTestDecorator.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/ScaledTestDecorator.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/SetupTaskAware.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/SetupTaskHandler.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/ShutdownHookable.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/SleepThrottle.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TKTestResult.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TKTestRunner.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TestRunnerImprovedErrorHandling.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TestThreadAware.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/Throttle.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TimingController.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TimingControllerAware.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/WrappedSuiteTestDecorator.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/CSVTestListener.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/ConsoleTestListener.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/TKTestListener.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/XMLTestListener.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/package.html create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/package.html create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/CommandLineParser.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ContextualProperties.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/MathUtils.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ParsedProperties.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/SizeOf.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/StackQueue.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/TestContextProperties.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/TestUtils.java create mode 100644 trunk/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/package.html create mode 100644 trunk/qpid/java/lib/backport-util-concurrent-2.2.jar create mode 100644 trunk/qpid/java/lib/bnd-0.0.249.jar create mode 100644 trunk/qpid/java/lib/cobertura/README.txt create mode 100644 trunk/qpid/java/lib/com.ibm.icu_3.8.1.v20080530.jar create mode 100644 trunk/qpid/java/lib/commons-beanutils-core-1.8.0.jar create mode 100644 trunk/qpid/java/lib/commons-cli-1.0.jar create mode 100644 trunk/qpid/java/lib/commons-codec-1.3.jar create mode 100644 trunk/qpid/java/lib/commons-collections-3.2.jar create mode 100644 trunk/qpid/java/lib/commons-configuration-1.6.jar create mode 100644 trunk/qpid/java/lib/commons-digester-1.8.1.jar create mode 100644 trunk/qpid/java/lib/commons-lang-2.2.jar create mode 100644 trunk/qpid/java/lib/commons-logging-1.0.4.jar create mode 100644 trunk/qpid/java/lib/commons-pool-1.4.jar create mode 100644 trunk/qpid/java/lib/core-3.1.1.jar create mode 100644 trunk/qpid/java/lib/derby-10.3.2.1.jar create mode 100644 trunk/qpid/java/lib/geronimo-jms_1.1_spec-1.0.jar create mode 100644 trunk/qpid/java/lib/geronimo-servlet_2.5_spec-1.2.jar create mode 100644 trunk/qpid/java/lib/javacc.jar create mode 100644 trunk/qpid/java/lib/javassist.jar create mode 100644 trunk/qpid/java/lib/jetty-6.1.14.jar create mode 100644 trunk/qpid/java/lib/jetty-util-6.1.14.jar create mode 100644 trunk/qpid/java/lib/jline-0.9.94.jar create mode 100644 trunk/qpid/java/lib/jsp-2.1.jar create mode 100644 trunk/qpid/java/lib/jsp-api-2.1.jar create mode 100644 trunk/qpid/java/lib/junit-3.8.1.jar create mode 100644 trunk/qpid/java/lib/junit-4.4.jar create mode 100644 trunk/qpid/java/lib/jython-2.5.0.jar create mode 100644 trunk/qpid/java/lib/log4j-1.2.12.jar create mode 100755 trunk/qpid/java/lib/mina-core-1.0.1.jar create mode 100755 trunk/qpid/java/lib/mina-filter-ssl-1.0.1.jar create mode 100644 trunk/qpid/java/lib/muse-core-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-platform-mini-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-util-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-util-qname-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-util-xml-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsa-soap-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsdm-muws-adv-api-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsdm-muws-adv-impl-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsdm-muws-api-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsdm-muws-impl-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsdm-wef-api-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsdm-wef-impl-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsn-api-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsn-impl-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsrf-api-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsrf-impl-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsrf-rmd-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsx-api-2.2.0.jar create mode 100644 trunk/qpid/java/lib/muse-wsx-impl-2.2.0.jar create mode 100644 trunk/qpid/java/lib/org.apache.commons.codec_1.3.0.v20080530-1600.jar create mode 100755 trunk/qpid/java/lib/org.apache.felix.framework-1.0.0.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.core.commands_3.4.0.I20080509-2000.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.core.contenttype_3.3.0.v20080604-1400.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.core.databinding_1.1.1.M20080827-0800b.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.core.expressions_3.4.0.v20080603-2000.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.core.jobs_3.4.0.v20080512.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610/META-INF/ECLIPSE.RSA create mode 100644 trunk/qpid/java/lib/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610/META-INF/ECLIPSE.SF create mode 100644 trunk/qpid/java/lib/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610/META-INF/MANIFEST.MF create mode 100644 trunk/qpid/java/lib/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610/META-INF/eclipse.inf create mode 100644 trunk/qpid/java/lib/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610/about.html create mode 100644 trunk/qpid/java/lib/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610/fragment.properties create mode 100644 trunk/qpid/java/lib/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610/runtime_registry_compatibility.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.core.runtime_3.4.0.v20080512.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.app_1.1.0.v20080421-2006.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.carbon.macosx_1.0.101.R34x_v20080731/META-INF/ECLIPSE.RSA create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.carbon.macosx_1.0.101.R34x_v20080731/META-INF/ECLIPSE.SF create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.carbon.macosx_1.0.101.R34x_v20080731/META-INF/MANIFEST.MF create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.carbon.macosx_1.0.101.R34x_v20080731/META-INF/eclipse.inf create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.carbon.macosx_1.0.101.R34x_v20080731/about.html create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.carbon.macosx_1.0.101.R34x_v20080731/eclipse_1115.so create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.carbon.macosx_1.0.101.R34x_v20080731/launcher.carbon.macosx.properties create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.101.R34x_v20080805/META-INF/ECLIPSE.RSA create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.101.R34x_v20080805/META-INF/ECLIPSE.SF create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.101.R34x_v20080805/META-INF/MANIFEST.MF create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.101.R34x_v20080805/META-INF/eclipse.inf create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.101.R34x_v20080805/about.html create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.101.R34x_v20080805/eclipse_1115.so create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.101.R34x_v20080805/launcher.gtk.linux.x86.properties create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.0.101.R34x_v20080731/META-INF/ECLIPSE.RSA create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.0.101.R34x_v20080731/META-INF/ECLIPSE.SF create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.0.101.R34x_v20080731/META-INF/MANIFEST.MF create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.0.101.R34x_v20080731/META-INF/eclipse.inf create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.0.101.R34x_v20080731/about.html create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.0.101.R34x_v20080731/eclipse_1115.so create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.0.101.R34x_v20080731/launcher.gtk.linux.x86_64.properties create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.solaris.sparc_1.0.101.R34x_v20080731/META-INF/ECLIPSE.RSA create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.solaris.sparc_1.0.101.R34x_v20080731/META-INF/ECLIPSE.SF create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.solaris.sparc_1.0.101.R34x_v20080731/META-INF/MANIFEST.MF create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.solaris.sparc_1.0.101.R34x_v20080731/META-INF/eclipse.inf create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.solaris.sparc_1.0.101.R34x_v20080731/about.html create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.solaris.sparc_1.0.101.R34x_v20080731/eclipse_1115.so create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.gtk.solaris.sparc_1.0.101.R34x_v20080731/launcher.gtk.solaris.sparc.properties create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731/META-INF/ECLIPSE.RSA create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731/META-INF/ECLIPSE.SF create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731/META-INF/MANIFEST.MF create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731/META-INF/eclipse.inf create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731/about.html create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731/eclipse_1115.dll create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731/launcher.win32.win32.x86.properties create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.launcher_1.0.101.R34x_v20080819.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.preferences_3.2.201.R34x_v20080709.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.help_3.3.101.v20080702_34x.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.jface.databinding_1.2.1.M20080827-0800a.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.jface_3.4.1.M20080827-2000.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.swt.carbon.macosx_3.4.1.v3449c.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.swt.gtk.linux.x86_3.4.1.v3449c.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.swt.gtk.linux.x86_64_3.4.1.v3449c.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.swt.gtk.solaris.sparc_3.4.1.v3449c.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.swt.win32.win32.x86_3.4.1.v3449c.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.swt_3.4.1.v3449c.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.ui.forms_3.3.101.v20080708_34x.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.ui.workbench_3.4.1.M20080827-0800a.jar create mode 100644 trunk/qpid/java/lib/org.eclipse.ui_3.4.1.M20080910-0800.jar create mode 100755 trunk/qpid/java/lib/org.osgi.core_1.0.0.jar create mode 100644 trunk/qpid/java/lib/poms/backport-util-concurrent-2.2.pom create mode 100644 trunk/qpid/java/lib/poms/commons-beanutils-core-1.8.0.pom create mode 100644 trunk/qpid/java/lib/poms/commons-cli-1.0.pom create mode 100644 trunk/qpid/java/lib/poms/commons-codec-1.3.pom create mode 100644 trunk/qpid/java/lib/poms/commons-collections-3.2.pom create mode 100644 trunk/qpid/java/lib/poms/commons-configuration-1.6.pom create mode 100644 trunk/qpid/java/lib/poms/commons-digester-1.8.1.pom create mode 100644 trunk/qpid/java/lib/poms/commons-lang-2.2.pom create mode 100644 trunk/qpid/java/lib/poms/commons-logging-1.0.4.pom create mode 100644 trunk/qpid/java/lib/poms/commons-pool-1.4.pom create mode 100644 trunk/qpid/java/lib/poms/derby-10.3.2.1.pom create mode 100644 trunk/qpid/java/lib/poms/geronimo-jms_1.1_spec-1.0.pom create mode 100644 trunk/qpid/java/lib/poms/junit-3.8.1.pom create mode 100644 trunk/qpid/java/lib/poms/log4j-1.2.12.pom create mode 100644 trunk/qpid/java/lib/poms/mina-core-1.0.1.pom create mode 100644 trunk/qpid/java/lib/poms/mina-filter-ssl-1.0.1.pom create mode 100644 trunk/qpid/java/lib/poms/org.apache.felix.framework-1.0.0.pom create mode 100644 trunk/qpid/java/lib/poms/org.osgi.core-1.0.0.pom create mode 100644 trunk/qpid/java/lib/poms/slf4j-api-1.4.0.pom create mode 100644 trunk/qpid/java/lib/poms/slf4j-log4j12-1.4.0.pom create mode 100644 trunk/qpid/java/lib/poms/xalan-2.7.0.pom create mode 100644 trunk/qpid/java/lib/slf4j-api-1.4.0.jar create mode 100644 trunk/qpid/java/lib/slf4j-log4j12-1.4.0.jar create mode 100644 trunk/qpid/java/lib/start.jar create mode 100644 trunk/qpid/java/lib/wsdl4j-1.6.1.jar create mode 100644 trunk/qpid/java/lib/xalan-2.7.0.jar create mode 100644 trunk/qpid/java/lib/xercesImpl-2.8.1.jar create mode 100644 trunk/qpid/java/lib/xml-apis-1.3.03.jar create mode 100644 trunk/qpid/java/management/agent/build.xml create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/AgentException.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/EventSeverity.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedEJB.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedObject.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedObjectBase.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedPOJO.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFAgent.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFEvent.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFHide.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFObject.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFProperty.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFSeeAlso.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFType.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingContext.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingException.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingUtils.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/EnumBinding.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ListBinding.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MethodBinding.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ParameterBinding.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/PropertyBinding.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/QMFTypeBinding.java create mode 100644 trunk/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/TypeBinding.java create mode 100644 trunk/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Crumpet.java create mode 100644 trunk/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Muppet.java create mode 100644 trunk/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Pikelet.java create mode 100644 trunk/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Puppet.java create mode 100644 trunk/qpid/java/management/client/README create mode 100644 trunk/qpid/java/management/client/bin/qman-jmx.cmd create mode 100644 trunk/qpid/java/management/client/bin/qman-jmx.sh create mode 100644 trunk/qpid/java/management/client/bin/qman-wsdm-start.cmd create mode 100644 trunk/qpid/java/management/client/bin/qman-wsdm-start.sh create mode 100644 trunk/qpid/java/management/client/bin/qman-wsdm-stop.cmd create mode 100644 trunk/qpid/java/management/client/bin/qman-wsdm-stop.sh create mode 100644 trunk/qpid/java/management/client/build.xml create mode 100644 trunk/qpid/java/management/client/console/brokers_management.jsp create mode 100644 trunk/qpid/java/management/client/console/console.jsp create mode 100644 trunk/qpid/java/management/client/console/error_page.jsp create mode 100644 trunk/qpid/java/management/client/console/fragments/header.jsp create mode 100644 trunk/qpid/java/management/client/console/fragments/menu.jsp create mode 100644 trunk/qpid/java/management/client/console/images/asf-logo.png create mode 100644 trunk/qpid/java/management/client/console/images/menu.gif create mode 100644 trunk/qpid/java/management/client/console/images/menuleft.gif create mode 100644 trunk/qpid/java/management/client/console/images/menuright.gif create mode 100644 trunk/qpid/java/management/client/console/images/qpid-logo.png create mode 100644 trunk/qpid/java/management/client/console/images/style.css create mode 100644 trunk/qpid/java/management/client/console/jmx_perspective.jsp create mode 100644 trunk/qpid/java/management/client/console/logging_configuration.jsp create mode 100644 trunk/qpid/java/management/client/console/resources_management.jsp create mode 100644 trunk/qpid/java/management/client/console/tbd.jsp create mode 100644 trunk/qpid/java/management/client/console/wsdm_operations_perspective.jsp create mode 100644 trunk/qpid/java/management/client/console/wsdm_properties_perspective.jsp create mode 100644 trunk/qpid/java/management/client/console/wsdm_rmd_perspective.jsp create mode 100644 trunk/qpid/java/management/client/console/wsdm_wsdl_perspective.jsp create mode 100644 trunk/qpid/java/management/client/doc/man/qman-jmx create mode 100644 trunk/qpid/java/management/client/etc/jetty.xml create mode 100644 trunk/qpid/java/management/client/etc/log4j.xml create mode 100644 trunk/qpid/java/management/client/etc/qman-config.xml create mode 100644 trunk/qpid/java/management/client/etc/qman-config.xsd create mode 100644 trunk/qpid/java/management/client/etc/qman.log4j create mode 100644 trunk/qpid/java/management/client/src/example/ConnectWithBroker.out.ok create mode 100644 trunk/qpid/java/management/client/src/example/GetMultipleResourceProperties.out.ok create mode 100644 trunk/qpid/java/management/client/src/example/GetQManResourceMembers.out.ko create mode 100644 trunk/qpid/java/management/client/src/example/GetQManResourceMembers.out.ok create mode 100644 trunk/qpid/java/management/client/src/example/GetResourceMetadataDescriptor.out.ok create mode 100644 trunk/qpid/java/management/client/src/example/GetResourcePropertyDocument.out.ok create mode 100644 trunk/qpid/java/management/client/src/example/GetResourcePropertyRequest.out.ok create mode 100644 trunk/qpid/java/management/client/src/example/GetWsdlMetadata.out.ko.no.resources create mode 100644 trunk/qpid/java/management/client/src/example/GetWsdlMetadata.out.ok create mode 100644 trunk/qpid/java/management/client/src/example/PauseAndResumeSubscription.out.ok create mode 100644 trunk/qpid/java/management/client/src/example/README create mode 100644 trunk/qpid/java/management/client/src/example/SetResourcePropertiesRequest.out.ok create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/AbstractQManExample.java create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/ConnectWithBrokerExample.java create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/ConsumerAndProducerExample.java create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/GetMultipleResourcePropertiesExample.java create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/GetQManResourceMembersExample.java create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/GetResourceMetadataDescriptorExample.java create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/GetResourcePropertyDocumentExample.java create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/GetResourcePropertyExample.java create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/GetWSDLMetadataExample.java create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/PausableSubscriptionExample.java create mode 100644 trunk/qpid/java/management/client/src/example/org/apache/qpid/management/example/SetResourcePropertyExample.java create mode 100644 trunk/qpid/java/management/client/src/main/java/muse.xml create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Messages.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Names.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/BrokerAlreadyConnectedException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/BrokerConnectionData.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/BrokerConnectionDataParser.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/BrokerConnectionException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/ConfigurationException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configurator.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/IParser.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/MessageHandlerMapping.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/QpidDatasource.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Tag.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/UnknownAccessCodeException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/UnknownBrokerException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/UnknownTypeCodeException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/WorkerManagerConfigurationParser.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/base/BaseMessageHandler.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandler.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/base/IMessageHandler.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/ConfigurationMessageHandler.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/EventContentMessageHandler.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/HeartBeatIndicationMessageHandler.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/IMethodInvocationListener.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/InstrumentationMessageHandler.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/InvocationResult.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/MethodOrEventDataTransferObject.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/MethodResponseMessageHandler.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/QpidDomainObject.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/QpidDomainObjectMBean.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/AccessMode.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/Direction.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/DomainModel.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/IValidator.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/InvocationEvent.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/JmxService.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/MissingFeatureAttributesException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidArgument.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidAttribute.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidClass.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidClassMBean.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidEntity.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidEvent.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidEventMBean.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidFeature.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidFeatureBuilder.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidMethod.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidPackage.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidProperty.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidStatistic.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/UnableToBuildFeatureException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/ValidationException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/AbsTime.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Binary.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Boolean.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/DeltaTime.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Double.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Float.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Int16.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Int32.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Int64.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Int8.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Map.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/ObjectReference.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str16.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str8.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Type.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint16.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint32.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint64.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint8.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uuid.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/BrokerMessageListener.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/ManagementClient.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/MessageTokenizer.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/MethodInvocationException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/QMan.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/QpidService.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/SequenceNumberGenerator.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/StartupFailureException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/UnableToComplyException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/jmx/EntityLifecycleNotification.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/jmx/OperationHasBeenInvokedNotification.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/messages/ManagementMessage.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/messages/MethodInvocationRequestMessage.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/messages/SchemaRequestMessage.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/servlet/ConnectQManToBroker.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/servlet/QManLifeCycleManager.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/servlet/WSDMAdapter.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/BrokerModel.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/BrokersManagementAction.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/ConsoleAction.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/ConsoleModel.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/JmxPerspectiveAction.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/LoggingConfigurationAction.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/ResourcesManagementAction.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/WsdmOperationsPerspectiveAction.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/WsdmPropertiesPerspectiveAction.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/WsdmRmdPerspectiveAction.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/web/action/WsdmWsdlPerspectiveAction.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/QEmu.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/QEmuInitializer.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/QEmuMBean.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/ArtifactsNotAvailableException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/BuilderException.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/Constants.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/ConsumerCapability.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/DummyCapabilityBuilder.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/IArtifactBuilder.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapability.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilder.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/QManAdapterCapability.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/QManMessageHandler.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/QManMetadataExchangeCapability.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/Result.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/RmdBuilder.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/WSDMArtifactsDirector.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/WsArtifacts.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/WsArtifactsFactory.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/WsdlBuilder.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/EntityInstanceNotFoundFault.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/MethodInvocationFault.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/NoSuchAttributeFault.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/ObjectNameIdFactory.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/QManFault.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/QManResourceIdFactory.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/ThreadSession.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/ThreadSessionManager.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/UnableToConnectWithBrokerFault.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/muse/engine/WSDMAdapterEnvironment.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/muse/engine/WSDMAdapterIsolationLayer.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/muse/resources/QManWsResource.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/muse/serializer/ByteArraySerializer.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/muse/serializer/DateSerializer.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/muse/serializer/InvocationResultSerializer.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/muse/serializer/MapSerializer.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/muse/serializer/ObjectSerializer.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/muse/serializer/UUIDSerializer.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/notifications/LifeCycleEvent.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/notifications/LifeCycleEventType.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/qman/debug/WsdlDebugger.java create mode 100644 trunk/qpid/java/management/client/src/main/java/org/apache/qpid/qman/debug/XmlDebugger.java create mode 100644 trunk/qpid/java/management/client/src/main/java/router-entries/adapter/resource-instance-1.xml create mode 100644 trunk/qpid/java/management/client/src/main/java/router-entries/consumer/resource-instance-1.xml create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/QManAdapter.rmd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/QManAdapter.wsdl create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/QManWsResource.rmd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/QManWsResource.wsdl create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/SOAP-Envelope-1_2.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-Addressing-2005_08.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-BaseFaults-1_2.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-BaseNotification-1_3.wsdl create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-BaseNotification-1_3.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-MetadataExchange-2004_09.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-Resource-1_2.wsdl create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-Resource-1_2.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-ResourceLifetime-1_2.wsdl create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-ResourceLifetime-1_2.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-ResourceMetadataDescriptor-CD-01.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-ResourceProperties-1_2.wsdl create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-ResourceProperties-1_2.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-ServiceGroup-1_2.wsdl create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-ServiceGroup-1_2.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-ServiceGroupEntry-1_2.wsdl create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WS-Topics-1_3.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WSDM-MUWS-Part1-1_1.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WSDM-MUWS-Part2-1_1.xsd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WsResource.rmd create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/WsResourceFactory.wsdl create mode 100644 trunk/qpid/java/management/client/src/main/java/wsdl/XML-Namespace-1998.xsd create mode 100644 trunk/qpid/java/management/client/src/test/java/log4j.xml create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/TestConstants.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfigurationTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfiguratorTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/configuration/MappingParsersTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandlerTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/BaseDomainModelTestCase.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/BaseQpidFeatureBuilderTestCase.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/DomainModelTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/OptionalPropertiesTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidClassTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidEventTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidMethodBuilderTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidNumberPropertyTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPackageTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPropertyBuilderTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStatisticBuilderTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStringPropertyTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/type/BinaryTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/services/BrokerMessageListenerTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/services/MessageTokenizerTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/BaseWsDmAdapterTestCase.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/EnhancedReflectionProxyHandler.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetMultipleResourcePropertiesTestCase.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertiesTestCase.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertyDocumentTestCase.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/MetadataExchangeInterfaceTestCase.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/OperationInvocationInterfaceTestCase.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/ServerThread.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/SetResourcePropertiesTestCase.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WebApplicationLifeCycleListener.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/QManAdapterCapabilityTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/RmdBuilderTest.java create mode 100644 trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/web.xml create mode 100644 trunk/qpid/java/management/client/web.xml create mode 100644 trunk/qpid/java/management/common/build.xml create mode 100644 trunk/qpid/java/management/common/src/main/java/management-common.bnd create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/JMXConnnectionFactory.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ConfigurationManagement.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ServerInformation.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/sasl/CRAMMD5HashedSaslClientFactory.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/sasl/ClientSaslFactory.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/sasl/Constants.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/sasl/JCAProvider.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/sasl/PlainSaslClient.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/sasl/SaslProvider.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/sasl/UserPasswordCallbackHandler.java create mode 100644 trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/sasl/UsernameHashedPasswordCallbackHandler.java create mode 100644 trunk/qpid/java/management/common/src/test/java/org/apache/qpid/management/common/mbeans/ManagedQueueTest.java create mode 100644 trunk/qpid/java/management/console/build.xml create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/AbstractConsole.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Agent.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Broker.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/ClassKey.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Console.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/ConsoleException.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/EventSeverity.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/MethodResult.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/ObjectID.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/QMFEvent.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/QMFObject.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaArgument.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaClass.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaMethod.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaProperty.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaStatistic.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SchemaVariable.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/SequenceManager.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Session.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/Util.java create mode 100644 trunk/qpid/java/management/console/src/main/java/org/apache/qpid/console/XMLUtil.java create mode 100644 trunk/qpid/java/management/console/src/test/java/org/apache/qpid/console/ClassKeyTest.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/META-INF/MANIFEST.MF create mode 100644 trunk/qpid/java/management/eclipse-plugin/build-release-common.properties create mode 100644 trunk/qpid/java/management/eclipse-plugin/build-release-linux-gtk-x86.properties create mode 100644 trunk/qpid/java/management/eclipse-plugin/build-release-linux-gtk-x86_64.properties create mode 100644 trunk/qpid/java/management/eclipse-plugin/build-release-macosx.properties create mode 100644 trunk/qpid/java/management/eclipse-plugin/build-release-macosx.xml create mode 100644 trunk/qpid/java/management/eclipse-plugin/build-release-solaris-gtk-sparc.properties create mode 100644 trunk/qpid/java/management/eclipse-plugin/build-release-win32-win32-x86.properties create mode 100644 trunk/qpid/java/management/eclipse-plugin/build-release.xml create mode 100644 trunk/qpid/java/management/eclipse-plugin/build.xml create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/add.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/back.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/configuration_management.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/delete.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/failure.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/icon_ClosedFolder.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/icon_OpenFolder.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/logging_management.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/mbean_view.png create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/notifications.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/qpidConnections.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/qpidmc.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/qpidmc16.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/qpidmc32.bmp create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/qpidmc32.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/reconnect.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/refresh.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/server_information.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/splash.bmp create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/stop.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/success.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/user_management.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/icons/virtualhost_manager.gif create mode 100644 trunk/qpid/java/management/eclipse-plugin/plugin.properties create mode 100644 trunk/qpid/java/management/eclipse-plugin/plugin.xml create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Activator.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApiVersion.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Application.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationActionBarAdvisor.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationRegistry.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationWorkbenchAdvisor.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ApplicationWorkbenchWindowAdvisor.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedBean.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedObject.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedServer.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Perspective.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/RefreshIntervalComboPanel.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AbstractAction.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AddServer.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/BackAction.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/CloseConnection.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/ReconnectServer.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/Refresh.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/RemoveServer.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/VersionAction.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/exceptions/InfoRequiredException.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/exceptions/ManagementConsoleException.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientListener.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientNotificationListener.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXManagedObject.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/MBeanUtility.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/AttributeData.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/ManagedAttributeModel.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/NotificationInfoModel.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/NotificationObject.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/OperationData.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/OperationDataModel.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/ParameterData.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/AttributesTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/INotificationViewer.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanTabFolderFactory.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NumberVerifyListener.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/TabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/TreeObject.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/VHNotificationsTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/connection/ConnectionOperationsTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/ExchangeOperationsTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/exchange/HeadersExchangeOperationsTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/ConfigurationFileTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/LoggingTableContentProvider.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/LoggingTableLabelProvider.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/LoggingTableSorter.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/logging/RuntimeTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ConnectionTypeTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/ExchangeTypeTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/MBeanTypeTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/users/UserManagementTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/vhost/VHostTabControl.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/.eclipseproduct create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/jmxremote.sasl-plugin/MANIFEST.MF create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/linux-gtk-x86/Configuration/config.ini create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/linux-gtk-x86/libcairo-swt.so create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/linux-gtk-x86/qpidmc create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/linux-gtk-x86/qpidmc.ini create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/linux-gtk-x86_64/Configuration/config.ini create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/linux-gtk-x86_64/libcairo-swt.so create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/linux-gtk-x86_64/qpidmc create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/linux-gtk-x86_64/qpidmc.ini create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Configuration/config.ini create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/Info.plist create mode 100755 trunk/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/MacOS/qpidmc create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/MacOS/qpidmc.ini create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/macosx/Contents/Resources/Console.icns create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/solaris-gtk-sparc/Configuration/config.ini create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/solaris-gtk-sparc/Qpidmc.l.pm create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/solaris-gtk-sparc/Qpidmc.m.pm create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/solaris-gtk-sparc/Qpidmc.s.pm create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/solaris-gtk-sparc/Qpidmc.t.pm create mode 100755 trunk/qpid/java/management/eclipse-plugin/src/main/resources/solaris-gtk-sparc/qpidmc create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/solaris-gtk-sparc/qpidmc.ini create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/win32-win32-x86/Configuration/config.ini create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/win32-win32-x86/qpidmc.exe create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/main/resources/win32-win32-x86/qpidmc.ini create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/test/java/org/apache/qpid/management/ui/ApiVersionTest.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/test/java/org/apache/qpid/management/ui/ApplicationRegistryTest.java create mode 100644 trunk/qpid/java/management/eclipse-plugin/src/test/java/org/apache/qpid/management/ui/ManagementConsoleTest.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/Guide.txt create mode 100644 trunk/qpid/java/management/tools/qpid-cli/LICENSE create mode 100644 trunk/qpid/java/management/tools/qpid-cli/NOTICE create mode 100644 trunk/qpid/java/management/tools/qpid-cli/README create mode 100755 trunk/qpid/java/management/tools/qpid-cli/bin/qpid-cli create mode 100755 trunk/qpid/java/management/tools/qpid-cli/bin/qpid-cli.bat create mode 100644 trunk/qpid/java/management/tools/qpid-cli/build.xml create mode 100644 trunk/qpid/java/management/tools/qpid-cli/report.property create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/Command.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/Connector.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/ConnectorFactory.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/ReportGenerator.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/CommandImpl.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/Commanddelete.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/Commandget.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/Commandhelp.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/Commandinfo.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/Commandlist.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/Commandmove.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/Commandset.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/Commandview.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/Commandviewcontent.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/objects/AllObjects.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/objects/ConnectionObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/objects/ExchangeObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/objects/ObjectNames.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/objects/QueueObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/objects/UserManagementObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/commands/objects/VirtualHostObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/utils/CommandLineOption.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/utils/CommandLineOptionConstants.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/utils/CommandLineOptionParser.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/utils/JMXConfigProperty.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/utils/JMXConfiguration.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/utils/JMXinfo.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/AllTest.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/ConnectionConstants.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/TestCommandExecutionEngine.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/TestCommandLineInterpreter.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/TestConnector.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/TestReportGenerator.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/TestCommand.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/TestCommanddelete.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/TestCommandinfo.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/TestCommandlist.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/TestCommandmove.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/TestCommandview.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/TestCommandviewcontent.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/objects/TestAllObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/objects/TestConnectionObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/objects/TestExchangeObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/objects/TestObjectNames.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/objects/TestQueueObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/objects/TestUserManagementObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/commands/objects/TestVirtualHostObject.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/utils/TestCommandLineOption.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/utils/TestCommandLineOptionParser.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/utils/TestJMXConfigProperty.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/utils/TestJMXConfiguration.java create mode 100644 trunk/qpid/java/management/tools/qpid-cli/test/org/apache/qpid/utils/TestJMXinfo.java create mode 100644 trunk/qpid/java/module.xml create mode 100644 trunk/qpid/java/perftests/RunningPerformanceTests.txt create mode 100755 trunk/qpid/java/perftests/bin/monitoring/monitor-broker.sh create mode 100755 trunk/qpid/java/perftests/bin/monitoring/runTests.sh create mode 100755 trunk/qpid/java/perftests/bin/monitoring/stop-monitored-broker.sh create mode 100755 trunk/qpid/java/perftests/bin/processing/process.sh create mode 100755 trunk/qpid/java/perftests/bin/processing/processAll.sh create mode 100755 trunk/qpid/java/perftests/bin/processing/processTests.py create mode 100755 trunk/qpid/java/perftests/bin/run_many.sh create mode 100755 trunk/qpid/java/perftests/bin/topicListener.sh create mode 100755 trunk/qpid/java/perftests/bin/topicPublisher.sh create mode 100644 trunk/qpid/java/perftests/build.xml create mode 100644 trunk/qpid/java/perftests/dist-zip.xml create mode 100644 trunk/qpid/java/perftests/etc/jndi/activemq.properties create mode 100644 trunk/qpid/java/perftests/etc/jndi/failovertest.properties create mode 100644 trunk/qpid/java/perftests/etc/jndi/perftests.properties create mode 100644 trunk/qpid/java/perftests/etc/jndi/swiftmq.properties create mode 100644 trunk/qpid/java/perftests/etc/perftests.log4j create mode 100755 trunk/qpid/java/perftests/etc/scripts/CTQ-Qpid-1.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/CTQ-Qpid-2.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/CTQ-Qpid-3.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/CTQ-Qpid-4.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/CTQ-Qpid-5.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/CTQ-Qpid-6.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/Connections.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/JobQueue.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/Latency.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/MessageSize.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/PT-Qpid-13.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/PT-Qpid-14.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/Reliability.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/RunAll.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/RunCore.sh create mode 100644 trunk/qpid/java/perftests/etc/scripts/Test-ActiveMQ.sh create mode 100644 trunk/qpid/java/perftests/etc/scripts/Test-SwiftMQ.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/Throughput.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/extractResults.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/extractThroughputResults.sh create mode 100755 trunk/qpid/java/perftests/etc/scripts/sendAndWaitClient.sh create mode 100644 trunk/qpid/java/perftests/generate-scripts create mode 100644 trunk/qpid/java/perftests/jar-with-dependencies.xml create mode 100644 trunk/qpid/java/perftests/scripts.xml create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/client/message/TestMessageFactory.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/config/AMQConnectionFactoryInitialiser.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/config/AbstractConfig.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/config/ConnectionFactoryInitialiser.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/config/Connector.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/config/ConnectorConfig.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/config/JBossConnectionFactoryInitialiser.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/oldtopic/Config.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/oldtopic/Listener.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/oldtopic/MessageFactory.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/oldtopic/Publisher.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/ping/PingAsyncTestPerf.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/ping/PingClient.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/ping/PingDurableClient.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/ping/PingLatencyTestPerf.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/ping/PingSendOnlyClient.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/ping/PingTestPerf.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongBouncer.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongTestPerf.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/test/testcases/MessageThroughputPerf.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/topic/Config.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/topic/Listener.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/topic/MessageFactory.java create mode 100644 trunk/qpid/java/perftests/src/main/java/org/apache/qpid/topic/Publisher.java create mode 100644 trunk/qpid/java/release-docs/RELEASE_NOTES.txt create mode 100644 trunk/qpid/java/resources/LICENSE create mode 100644 trunk/qpid/java/resources/NOTICE create mode 100644 trunk/qpid/java/resources/README create mode 100644 trunk/qpid/java/systests/build.xml create mode 100644 trunk/qpid/java/systests/etc/bin/fail.py create mode 100755 trunk/qpid/java/systests/etc/bin/testclients.sh create mode 100644 trunk/qpid/java/systests/etc/config-systests-ServerConfigurationTest-New.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests-ServerConfigurationTest-Old.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests-acl-settings.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests-acl.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests-derby-settings.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests-derby.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests-firewall-2.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests-firewall-3.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests-firewall-settings.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests-firewall.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests-settings.xml create mode 100644 trunk/qpid/java/systests/etc/config-systests.xml create mode 100644 trunk/qpid/java/systests/etc/virtualhosts-ServerConfigurationTest-New.xml create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeIdleStatusChecker.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/AMQQueueDeferredOrderingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/DispatcherTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/MessageListenerMultiConsumerImmediatePrefetch.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/MessageListenerMultiConsumerTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/MessageListenerTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/MultipleJCAProviderRegistrationTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/ResetMessageListenerTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/SessionCreateTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/message/NonQpidObjectMessage.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagementActorLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/BrokerStartupTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/configuration/ServerConfigurationFileTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/MessagingTestConfigProperties.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/failover/FailoverMethodTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/failover/MessageDisappearWithIOExceptionTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/failure/HeapExhaustion.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/BindingLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/BrokerLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ChannelLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/DerbyMessageStoreLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/DurableQueueLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ExchangeLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ManagementLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/MemoryMessageStoreLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/QueueLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/SubscriptionLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/TransientQueueLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/VirtualHostLoggingTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/persistent/NoLocalAfterRecoveryTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/DeepQueueConsumeWithSelector.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ModelTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/PersistentTestManual.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/PriorityTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ProducerFlowControlTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/QueueDepthWithSelectorTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/SubscriptionTestHelper.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/TimeToLiveTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/SimpleACLTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/firewall/FirewallConfigTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/PersistentStoreTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStore.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/util/AveragedRun.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/util/RunStats.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/util/TimedRun.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/CancelTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/DupsOkTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/FlowControlTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserClientAckTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserDupsOkTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserNoAckTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserPreAckTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserTransactedTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/RollbackOrderTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/failover/FailoverTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/JMSDestinationTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/MessageToStringTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/ObjectMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/SelectorTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitTimeoutDelayTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/AMQPPublisher.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/Assertion.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/AssertionBase.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/BrokerLifecycleAware.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/CauseFailure.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/CauseFailureUserPrompt.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/Circuit.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/CircuitEnd.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/CircuitEndBase.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/DropInTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/ExceptionMonitor.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/FrameworkBaseCase.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/FrameworkClientBaseCase.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/FrameworkTestContext.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/LocalAMQPCircuitFactory.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/LocalCircuitFactory.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/MessageIdentityVector.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/MessageMonitor.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/MessagingTestConfigProperties.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/NotApplicableAssertion.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/Publisher.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/Receiver.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/TestCaseVector.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/TestClientDetails.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/TestUtils.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/clocksynch/ClockSynchFailureException.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/clocksynch/ClockSynchThread.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/clocksynch/ClockSynchronizer.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/clocksynch/LocalClockSynchronizer.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/clocksynch/UDPClockReference.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/clocksynch/UDPClockSynchronizer.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedcircuit/DistributedCircuitImpl.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedcircuit/DistributedPublisherImpl.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedcircuit/DistributedReceiverImpl.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedcircuit/TestClientCircuitEnd.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/Coordinator.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/DistributedTestDecorator.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/FanOutTestDecorator.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/InteropTestDecorator.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/OptOutTestCase.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/TestClient.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/TestClientControlledTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/listeners/XMLTestListener.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/localcircuit/LocalAMQPPublisherImpl.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/localcircuit/LocalCircuitImpl.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/localcircuit/LocalPublisherImpl.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/localcircuit/LocalReceiverImpl.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/package.html create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/qpid/AMQPFeatureDecorator.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/qpid/CauseFailureDecorator.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/qpid/CauseFailureInVM.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/qpid/InVMBrokerDecorator.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/sequencers/BaseCircuitFactory.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/sequencers/CircuitFactory.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/sequencers/FanOutCircuitFactory.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/sequencers/InteropCircuitFactory.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/testcases/FailoverTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/testcases/ImmediateMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/testcases/MandatoryMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/testcases/RollbackTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/testcases/TTLTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/Acknowledge2ConsumersTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeAfterFailoverOnMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeAfterFailoverTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/FailoverBeforeConsumingRecoverTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/QuickAcking.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/RecoverTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/FieldTableMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/InvalidDestinationTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/LargeMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/MapMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/MultipleConnectionTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/ObjectMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PropertyValueTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/PubSubTwoConnectionTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/ReceiveTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/SessionStartTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/TextMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/close/CloseTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQSessionTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/DynamicQueueExchangeCreateTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/channelclose/ChannelCloseOkTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/channelclose/ChannelCloseTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/channelclose/CloseWithBlockingReceiveTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/CloseAfterConnectionFailureTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ExceptionListenerTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/forwardall/Client.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/forwardall/CombinedTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/forwardall/Service.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/forwardall/ServiceCreator.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/forwardall/SpecialQueue.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/message/ObjectMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/protocol/AMQProtocolSessionTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/temporaryqueue/TemporaryQueueTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/close/CloseBeforeAckTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/close/JavaServerCloseRaceConditionTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/close/MessageRequeueTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/close/TopicPublisherCloseTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/close/VerifyAckingOkDuringClose.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ct/DurableSubscriberTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/JMSPropertiesTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/StreamMessageTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/UTF8En create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/UTF8Jp create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/UTF8Test.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/publish/DirtyTrasactedPubilshTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/TopicPublisherTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/TopicSessionTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/CommitRollbackTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactedTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/xa/AbstractXATestCase.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/xa/FaultTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/xa/QueueTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/xa/TopicTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/ConversationFactory.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/FailoverBaseCase.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidClientConnection.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidClientConnectionHelper.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/ReflectionUtils.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/ReflectionUtilsException.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/protocol/TestIoSession.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/util/ClasspathScanner.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/util/LogMonitor.java create mode 100644 trunk/qpid/java/systests/src/main/java/org/apache/qpid/util/LogMonitorTest.java create mode 100644 trunk/qpid/java/systests/src/main/java/systests.log4j create mode 100644 trunk/qpid/java/systests/src/old_test/java/org/apache/qpid/server/exchange/HeadersExchangePerformanceTest.java create mode 100644 trunk/qpid/java/systests/src/old_test/java/org/apache/qpid/server/protocol/TestProtocolInitiation.java create mode 100644 trunk/qpid/java/systests/src/old_test/java/org/apache/qpid/server/queue/QueueConcurrentPerfTest.java create mode 100644 trunk/qpid/java/systests/src/old_test/java/org/apache/qpid/server/queue/QueuePerfTest.java create mode 100644 trunk/qpid/java/systests/src/old_test/java/org/apache/qpid/server/queue/SendPerfTest.java create mode 100644 trunk/qpid/java/systests/src/old_test/java/org/apache/qpid/server/util/ConcurrentTest.java create mode 100644 trunk/qpid/java/systests/src/old_test/java/org/apache/qpid/test/unit/ack/DisconnectAndRedeliverTest.java create mode 100644 trunk/qpid/java/tasks/src/org/apache/qpid/tasks/BaseTask.java create mode 100644 trunk/qpid/java/tasks/src/org/apache/qpid/tasks/Foreach.java create mode 100644 trunk/qpid/java/tasks/src/org/apache/qpid/tasks/Map.java create mode 100644 trunk/qpid/java/tasks/src/org/apache/qpid/tasks/Require.java create mode 100644 trunk/qpid/java/test-profiles/08StandaloneExcludes create mode 100755 trunk/qpid/java/test-profiles/CPPExcludes create mode 100644 trunk/qpid/java/test-profiles/CPPPrefetchExcludes create mode 100644 trunk/qpid/java/test-profiles/CPPTransientExcludes create mode 100644 trunk/qpid/java/test-profiles/Excludes create mode 100644 trunk/qpid/java/test-profiles/JavaExcludes create mode 100644 trunk/qpid/java/test-profiles/JavaInVMExcludes create mode 100644 trunk/qpid/java/test-profiles/JavaStandaloneExcludes create mode 100644 trunk/qpid/java/test-profiles/JavaTransientExcludes create mode 100644 trunk/qpid/java/test-profiles/XAExcludes create mode 100755 trunk/qpid/java/test-profiles/clean-dir create mode 100644 trunk/qpid/java/test-profiles/cpp.async.excludes create mode 100644 trunk/qpid/java/test-profiles/cpp.async.testprofile create mode 100644 trunk/qpid/java/test-profiles/cpp.cluster.testprofile create mode 100644 trunk/qpid/java/test-profiles/cpp.excludes create mode 100644 trunk/qpid/java/test-profiles/cpp.noprefetch.testprofile create mode 100644 trunk/qpid/java/test-profiles/cpp.ssl.excludes create mode 100644 trunk/qpid/java/test-profiles/cpp.ssl.testprofile create mode 100644 trunk/qpid/java/test-profiles/cpp.testprofile create mode 100644 trunk/qpid/java/test-profiles/default.testprofile create mode 100644 trunk/qpid/java/test-profiles/java-derby.testprofile create mode 100644 trunk/qpid/java/test-profiles/java.0.10.testprofile create mode 100644 trunk/qpid/java/test-profiles/java.testprofile create mode 100644 trunk/qpid/java/test-profiles/log4j-test.xml create mode 100644 trunk/qpid/java/test-profiles/test-provider.properties create mode 100644 trunk/qpid/java/test-profiles/test_resources/ssl/certstore.jks create mode 100644 trunk/qpid/java/test-profiles/test_resources/ssl/keystore.jks create mode 100644 trunk/qpid/java/test-profiles/test_resources/ssl/pfile create mode 100644 trunk/qpid/java/test-profiles/test_resources/ssl/server_db/cert8.db create mode 100644 trunk/qpid/java/test-profiles/test_resources/ssl/server_db/key3.db create mode 100644 trunk/qpid/java/test-profiles/test_resources/ssl/server_db/secmod.db create mode 100644 trunk/qpid/java/test-profiles/test_resources/ssl/server_db/server.crt create mode 100644 trunk/qpid/java/test-profiles/test_resources/ssl/server_db/server.req create mode 100644 trunk/qpid/java/testkit/README create mode 100755 trunk/qpid/java/testkit/bin/qpid-python-testkit create mode 100644 trunk/qpid/java/testkit/bin/run_soak_client.sh create mode 100644 trunk/qpid/java/testkit/bin/setenv.sh create mode 100644 trunk/qpid/java/testkit/bin/soak_report.sh create mode 100644 trunk/qpid/java/testkit/build.xml create mode 100644 trunk/qpid/java/testkit/etc/jndi.properties create mode 100644 trunk/qpid/java/testkit/etc/test.log4j create mode 100644 trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/Client.java create mode 100644 trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/ErrorHandler.java create mode 100644 trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/Receiver.java create mode 100644 trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/Sender.java create mode 100644 trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/TestLauncher.java create mode 100644 trunk/qpid/java/testkit/src/main/java/org/apache/qpid/testkit/soak/ResourceLeakTest.java create mode 100755 trunk/qpid/java/testkit/testkit.py create mode 100755 trunk/qpid/java/tools/bin/perf_report.sh create mode 100644 trunk/qpid/java/tools/bin/qpid-bench create mode 100644 trunk/qpid/java/tools/bin/run_pub.sh create mode 100644 trunk/qpid/java/tools/bin/run_sub.sh create mode 100644 trunk/qpid/java/tools/bin/setenv.sh create mode 100644 trunk/qpid/java/tools/build.xml create mode 100644 trunk/qpid/java/tools/src/main/java/org/apache/qpid/tools/JNDICheck.java create mode 100644 trunk/qpid/java/tools/src/main/java/org/apache/qpid/tools/LatencyTest.java create mode 100644 trunk/qpid/java/tools/src/main/java/org/apache/qpid/tools/MessageFactory.java create mode 100644 trunk/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfBase.java create mode 100644 trunk/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfConsumer.java create mode 100644 trunk/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfProducer.java create mode 100644 trunk/qpid/java/tools/src/main/java/org/apache/qpid/tools/QpidBench.java create mode 100644 trunk/qpid/java/tools/src/main/java/org/apache/qpid/tools/TestParams.java create mode 100644 trunk/qpid/python/LICENSE.txt create mode 100644 trunk/qpid/python/Makefile create mode 100644 trunk/qpid/python/NOTICE.txt create mode 100644 trunk/qpid/python/README.txt create mode 100644 trunk/qpid/python/RELEASE_NOTES create mode 100755 trunk/qpid/python/commands/qpid-cluster create mode 100755 trunk/qpid/python/commands/qpid-config create mode 100755 trunk/qpid/python/commands/qpid-printevents create mode 100755 trunk/qpid/python/commands/qpid-queue-stats create mode 100755 trunk/qpid/python/commands/qpid-route create mode 100755 trunk/qpid/python/commands/qpid-stat create mode 100755 trunk/qpid/python/commands/qpid-tool create mode 100644 trunk/qpid/python/doc/test-requirements.txt create mode 100644 trunk/qpid/python/examples/README create mode 100755 trunk/qpid/python/examples/api/drain create mode 100755 trunk/qpid/python/examples/api/server create mode 100755 trunk/qpid/python/examples/api/spout create mode 100755 trunk/qpid/python/examples/datatypes/client.py create mode 100755 trunk/qpid/python/examples/datatypes/server.py create mode 100644 trunk/qpid/python/examples/datatypes/testdata.py create mode 100755 trunk/qpid/python/examples/direct/declare_queues.py create mode 100755 trunk/qpid/python/examples/direct/direct_consumer.py create mode 100755 trunk/qpid/python/examples/direct/direct_producer.py create mode 100755 trunk/qpid/python/examples/direct/listener.py create mode 100644 trunk/qpid/python/examples/direct/verify create mode 100644 trunk/qpid/python/examples/direct/verify.in create mode 100755 trunk/qpid/python/examples/fanout/fanout_consumer.py create mode 100755 trunk/qpid/python/examples/fanout/fanout_producer.py create mode 100755 trunk/qpid/python/examples/fanout/listener.py create mode 100644 trunk/qpid/python/examples/fanout/verify create mode 100644 trunk/qpid/python/examples/fanout/verify.in create mode 100755 trunk/qpid/python/examples/headers/declare_queues.py create mode 100755 trunk/qpid/python/examples/headers/headers_consumer.py create mode 100755 trunk/qpid/python/examples/headers/headers_producer.py create mode 100644 trunk/qpid/python/examples/headers/verify create mode 100644 trunk/qpid/python/examples/headers/verify.in create mode 100755 trunk/qpid/python/examples/pubsub/topic_publisher.py create mode 100755 trunk/qpid/python/examples/pubsub/topic_subscriber.py create mode 100644 trunk/qpid/python/examples/pubsub/verify create mode 100644 trunk/qpid/python/examples/pubsub/verify.in create mode 100755 trunk/qpid/python/examples/request-response/client.py create mode 100755 trunk/qpid/python/examples/request-response/server.py create mode 100644 trunk/qpid/python/examples/request-response/verify create mode 100644 trunk/qpid/python/examples/request-response/verify.in create mode 100755 trunk/qpid/python/examples/xml-exchange/declare_queues.py create mode 100755 trunk/qpid/python/examples/xml-exchange/listener.py create mode 100644 trunk/qpid/python/examples/xml-exchange/verify create mode 100644 trunk/qpid/python/examples/xml-exchange/verify.in create mode 100755 trunk/qpid/python/examples/xml-exchange/xml_consumer.py create mode 100755 trunk/qpid/python/examples/xml-exchange/xml_producer.py create mode 100755 trunk/qpid/python/hello-world create mode 100644 trunk/qpid/python/mllib/__init__.py create mode 100644 trunk/qpid/python/mllib/dom.py create mode 100644 trunk/qpid/python/mllib/parsers.py create mode 100644 trunk/qpid/python/mllib/transforms.py create mode 100644 trunk/qpid/python/models/fedsim/__init__.py create mode 100644 trunk/qpid/python/models/fedsim/fedsim.py create mode 100644 trunk/qpid/python/models/fedsim/testBig.py create mode 100644 trunk/qpid/python/models/fedsim/testRing.py create mode 100644 trunk/qpid/python/models/fedsim/testStar.py create mode 100644 trunk/qpid/python/models/fedsim/testStarAdd.py create mode 100755 trunk/qpid/python/preppy create mode 100644 trunk/qpid/python/qmf/__init__.py create mode 100644 trunk/qpid/python/qmf/console.py create mode 100755 trunk/qpid/python/qpid-python-test create mode 100644 trunk/qpid/python/qpid/__init__.py create mode 100644 trunk/qpid/python/qpid/address.py create mode 100644 trunk/qpid/python/qpid/brokertest.py create mode 100644 trunk/qpid/python/qpid/client.py create mode 100644 trunk/qpid/python/qpid/codec.py create mode 100644 trunk/qpid/python/qpid/codec010.py create mode 100644 trunk/qpid/python/qpid/compat.py create mode 100644 trunk/qpid/python/qpid/concurrency.py create mode 100644 trunk/qpid/python/qpid/connection.py create mode 100644 trunk/qpid/python/qpid/connection08.py create mode 100644 trunk/qpid/python/qpid/content.py create mode 100644 trunk/qpid/python/qpid/datatypes.py create mode 100644 trunk/qpid/python/qpid/debug.py create mode 100644 trunk/qpid/python/qpid/delegate.py create mode 100644 trunk/qpid/python/qpid/delegates.py create mode 100644 trunk/qpid/python/qpid/disp.py create mode 100644 trunk/qpid/python/qpid/driver.py create mode 100644 trunk/qpid/python/qpid/exceptions.py create mode 100644 trunk/qpid/python/qpid/framer.py create mode 100644 trunk/qpid/python/qpid/framing.py create mode 100644 trunk/qpid/python/qpid/generator.py create mode 100644 trunk/qpid/python/qpid/harness.py create mode 100644 trunk/qpid/python/qpid/lexer.py create mode 100644 trunk/qpid/python/qpid/log.py create mode 100644 trunk/qpid/python/qpid/management.py create mode 100644 trunk/qpid/python/qpid/managementdata.py create mode 100644 trunk/qpid/python/qpid/message.py create mode 100644 trunk/qpid/python/qpid/messaging.py create mode 100644 trunk/qpid/python/qpid/mimetype.py create mode 100644 trunk/qpid/python/qpid/ops.py create mode 100644 trunk/qpid/python/qpid/packer.py create mode 100644 trunk/qpid/python/qpid/parser.py create mode 100644 trunk/qpid/python/qpid/peer.py create mode 100644 trunk/qpid/python/qpid/queue.py create mode 100644 trunk/qpid/python/qpid/reference.py create mode 100644 trunk/qpid/python/qpid/selector.py create mode 100644 trunk/qpid/python/qpid/session.py create mode 100644 trunk/qpid/python/qpid/spec.py create mode 100644 trunk/qpid/python/qpid/spec08.py create mode 100644 trunk/qpid/python/qpid/testlib.py create mode 100644 trunk/qpid/python/qpid/tests/__init__.py create mode 100644 trunk/qpid/python/qpid/tests/address.py create mode 100644 trunk/qpid/python/qpid/tests/framing.py create mode 100644 trunk/qpid/python/qpid/tests/messaging.py create mode 100644 trunk/qpid/python/qpid/tests/mimetype.py create mode 100644 trunk/qpid/python/qpid/tests/parser.py create mode 100644 trunk/qpid/python/qpid/util.py create mode 100644 trunk/qpid/python/qpid_config.py create mode 100755 trunk/qpid/python/server create mode 100755 trunk/qpid/python/server010 create mode 100644 trunk/qpid/python/setup.py create mode 100644 trunk/qpid/python/tests/__init__.py create mode 100644 trunk/qpid/python/tests/codec.py create mode 100644 trunk/qpid/python/tests/codec010.py create mode 100644 trunk/qpid/python/tests/connection.py create mode 100644 trunk/qpid/python/tests/datatypes.py create mode 100644 trunk/qpid/python/tests/queue.py create mode 100644 trunk/qpid/python/tests/spec010.py create mode 100644 trunk/qpid/python/tests_0-10/__init__.py create mode 100644 trunk/qpid/python/tests_0-10/alternate_exchange.py create mode 100644 trunk/qpid/python/tests_0-10/broker.py create mode 100644 trunk/qpid/python/tests_0-10/dtx.py create mode 100644 trunk/qpid/python/tests_0-10/example.py create mode 100644 trunk/qpid/python/tests_0-10/exchange.py create mode 100644 trunk/qpid/python/tests_0-10/management.py create mode 100644 trunk/qpid/python/tests_0-10/message.py create mode 100644 trunk/qpid/python/tests_0-10/persistence.py create mode 100644 trunk/qpid/python/tests_0-10/query.py create mode 100644 trunk/qpid/python/tests_0-10/queue.py create mode 100644 trunk/qpid/python/tests_0-10/tx.py create mode 100644 trunk/qpid/python/tests_0-8/__init__.py create mode 100644 trunk/qpid/python/tests_0-8/basic.py create mode 100644 trunk/qpid/python/tests_0-8/broker.py create mode 100644 trunk/qpid/python/tests_0-8/example.py create mode 100644 trunk/qpid/python/tests_0-8/exchange.py create mode 100644 trunk/qpid/python/tests_0-8/queue.py create mode 100644 trunk/qpid/python/tests_0-8/testlib.py create mode 100644 trunk/qpid/python/tests_0-8/tx.py create mode 100644 trunk/qpid/python/tests_0-9/__init__.py create mode 100644 trunk/qpid/python/tests_0-9/query.py create mode 100644 trunk/qpid/python/tests_0-9/queue.py create mode 100644 trunk/qpid/python/todo.txt create mode 100644 trunk/qpid/review/LICENSE create mode 100644 trunk/qpid/review/NOTICE create mode 100755 trunk/qpid/review/agenda.py create mode 100755 trunk/qpid/review/changeLogToWiki.py create mode 100644 trunk/qpid/review/jiraRSS2wiki.xsl create mode 100644 trunk/qpid/review/svnlog2wiki.xsl create mode 100755 trunk/qpid/ruby/LICENSE.txt create mode 100644 trunk/qpid/ruby/Makefile create mode 100644 trunk/qpid/ruby/NOTICE.txt create mode 100644 trunk/qpid/ruby/README.txt create mode 100644 trunk/qpid/ruby/RELEASE_NOTES create mode 100644 trunk/qpid/ruby/Rakefile create mode 100644 trunk/qpid/ruby/examples/hello-world.rb create mode 100644 trunk/qpid/ruby/examples/qmf-libvirt.rb create mode 100644 trunk/qpid/ruby/ext/sasl/extconf.rb create mode 100644 trunk/qpid/ruby/ext/sasl/sasl.c create mode 100644 trunk/qpid/ruby/lib/qpid.rb create mode 100644 trunk/qpid/ruby/lib/qpid/assembler.rb create mode 100644 trunk/qpid/ruby/lib/qpid/client.rb create mode 100644 trunk/qpid/ruby/lib/qpid/codec.rb create mode 100644 trunk/qpid/ruby/lib/qpid/codec08.rb create mode 100644 trunk/qpid/ruby/lib/qpid/config.rb create mode 100644 trunk/qpid/ruby/lib/qpid/connection.rb create mode 100644 trunk/qpid/ruby/lib/qpid/connection08.rb create mode 100644 trunk/qpid/ruby/lib/qpid/datatypes.rb create mode 100644 trunk/qpid/ruby/lib/qpid/delegates.rb create mode 100644 trunk/qpid/ruby/lib/qpid/fields.rb create mode 100644 trunk/qpid/ruby/lib/qpid/framer.rb create mode 100644 trunk/qpid/ruby/lib/qpid/invoker.rb create mode 100644 trunk/qpid/ruby/lib/qpid/packer.rb create mode 100644 trunk/qpid/ruby/lib/qpid/peer.rb create mode 100644 trunk/qpid/ruby/lib/qpid/qmf.rb create mode 100644 trunk/qpid/ruby/lib/qpid/queue.rb create mode 100644 trunk/qpid/ruby/lib/qpid/session.rb create mode 100644 trunk/qpid/ruby/lib/qpid/spec.rb create mode 100644 trunk/qpid/ruby/lib/qpid/spec010.rb create mode 100644 trunk/qpid/ruby/lib/qpid/spec08.rb create mode 100644 trunk/qpid/ruby/lib/qpid/test.rb create mode 100644 trunk/qpid/ruby/lib/qpid/traverse.rb create mode 100644 trunk/qpid/ruby/lib/qpid/util.rb create mode 100644 trunk/qpid/ruby/tests/assembler.rb create mode 100644 trunk/qpid/ruby/tests/codec010.rb create mode 100644 trunk/qpid/ruby/tests/connection.rb create mode 100644 trunk/qpid/ruby/tests/datatypes.rb create mode 100644 trunk/qpid/ruby/tests/framer.rb create mode 100644 trunk/qpid/ruby/tests/qmf.rb create mode 100644 trunk/qpid/ruby/tests/queue.rb create mode 100644 trunk/qpid/ruby/tests/spec010.rb create mode 100644 trunk/qpid/ruby/tests/util.rb create mode 100644 trunk/qpid/ruby/tests_0-8/basic.rb create mode 100644 trunk/qpid/ruby/tests_0-8/channel.rb create mode 100644 trunk/qpid/specs/LICENSE create mode 100644 trunk/qpid/specs/NOTICE create mode 100644 trunk/qpid/specs/amqp-dtx-preview.0-9.xml create mode 100644 trunk/qpid/specs/amqp-errata.0-9.xml create mode 100644 trunk/qpid/specs/amqp-nogen.0-9.xml create mode 100644 trunk/qpid/specs/amqp.0-10-preview.xml create mode 100644 trunk/qpid/specs/amqp.0-10-qpid-errata.xml create mode 100644 trunk/qpid/specs/amqp.0-10.dtd create mode 100644 trunk/qpid/specs/amqp.0-10.xml create mode 100644 trunk/qpid/specs/amqp.0-8.xml create mode 100644 trunk/qpid/specs/amqp.0-9.xml create mode 100644 trunk/qpid/specs/amqp0-9-1.stripped.xml create mode 100644 trunk/qpid/specs/cluster.0-8.xml create mode 100644 trunk/qpid/specs/management-schema.xml create mode 100644 trunk/qpid/wcf/QpidWcf.sln create mode 100644 trunk/qpid/wcf/ReadMe.txt create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.cs create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.csproj create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.cs create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.csproj create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/WCFToWCFDirect.sln create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.cs create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.csproj create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.cs create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.csproj create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.cs create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.csproj create mode 100644 trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/WCFToWCFPubSub.sln create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpBoolean.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpInt.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpProperties.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpString.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpType.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpTypes.csproj create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpUbyte.cs create mode 100755 trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/CreateNetModule.bat create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/PropertyName.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBinaryBinding.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBinaryBindingCollectionElement.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBinaryBindingConfigurationElement.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBinding.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBindingCollectionElement.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBindingConfigurationElement.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpChannelFactory.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpChannelHelpers.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpChannelListener.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpTransportBindingElement.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpTransportChannel.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/Channel.csproj create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/ConnectionManager.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/Properties/AssemblyInfo.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/RawMessage.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/RawMessageEncoder.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/RawMessageEncoderFactory.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/RawMessageEncodingBindingElement.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/RawXmlReader.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Channel/RawXmlWriter.cs create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/DtcPlugin/DtcPlugin.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpConnection.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpConnection.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpMessage.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpMessage.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpSession.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpSession.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/AssemblyInfo.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/CompletionWaiter.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/CompletionWaiter.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/DtxResourceManager.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/DtxResourceManager.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/InputLink.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/InputLink.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/Interop.vcproj create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/MessageBodyStream.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/MessageBodyStream.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/MessageWaiter.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/MessageWaiter.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/OutputLink.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/OutputLink.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/QpidException.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/QpidMarshal.h create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/XaTransaction.cpp create mode 100644 trunk/qpid/wcf/src/Apache/Qpid/Interop/XaTransaction.h create mode 100644 trunk/qpid/wcf/src/wcfnet.snk create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/AsyncTest.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/CustomAmqpBindingTest.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/FunctionalTests.csproj create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/IGenericObjectService.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/IInteropService.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/IQueuedDatagramService1.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/IQueuedDatagramService2.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/IQueuedDatagramService3.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessageBodyTest.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessageClient.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessageProperties.txt create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessagePropertiesTest.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessageService.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MultipleEndpointsSameQueueTest.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/Properties/AssemblyInfo.cs create mode 100755 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/RunTests.bat create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/Util.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/WcfPerftest/RawBodyUtility.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/WcfPerftest/WcfPerftest.cs create mode 100644 trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/WcfPerftest/WcfPerftest.csproj create mode 100644 trunk/qpid/wcf/tools/QCreate/QCreate.cpp create mode 100644 trunk/qpid/wcf/tools/QCreate/QCreate.sln create mode 100644 trunk/qpid/wcf/tools/QCreate/QCreate.vcproj create mode 100644 trunk/qpid/wcf/tools/QCreate/ReadMe.txt create mode 100644 trunk/qpid/wcf/tools/QCreate/stdafx.cpp create mode 100644 trunk/qpid/wcf/tools/QCreate/stdafx.h create mode 100644 trunk/qpid/wcf/tools/QCreate/targetver.h diff --git a/trunk/.gitignore b/trunk/.gitignore new file mode 100644 index 0000000000..14fc13b445 --- /dev/null +++ b/trunk/.gitignore @@ -0,0 +1,60 @@ +#Python +*.pyc +*.out +#CPP +*.o +*.la +*.lo +*.vglog +.dirstamp +Makefile* +config\.* +configure +.deps +.libs +autom4te.cache +aclocal.m4 +developer.doxygen +user.doxygen +qpidd.1 +qpid/cpp/libtool +qpidc.spec +qpid/cpp/src/gen/ +*gen.mk +*.timestamp +rgen.timestamp +*.pcl +qpid/cpp/managementgen/management-types.xml + +#Java +*.class +velocity.log* +qpid/java/build +release +.classpath +.project +.settings +generated/ +target +qpid/java/lib/cobertura/ +# Intellij Project files +*.iml +*.ipr +*.iws +# Emacs +*~ +# Microsoft Visual Studio artifacts +*.vcproj.*.*.user +*.ncb +*.suo +*.ilk +*.pdb +# Windows build results +*.exe +*.lib +*.dll +# MacOS File +.DS_Store + +#Eclipse workspace +workspace/ diff --git a/trunk/qpid/KEYS b/trunk/qpid/KEYS new file mode 100644 index 0000000000..81a2c8d842 --- /dev/null +++ b/trunk/qpid/KEYS @@ -0,0 +1,255 @@ +pub 2048R/18806464 2006-11-14 +uid Rajith Attapattu +sig 3 18806464 2006-11-14 Rajith Attapattu +uid Rajith Attapattu +sig 3 18806464 2006-11-14 Rajith Attapattu + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.2.1 (GNU/Linux) + +mQELBEVaPcABCAC+iLSVxk/TZ2i5Kq4KhdYdBdpXizwRsKdCq9m9DwD20yke0rZL +067ka5z4gA2prOUUCJ51G/CFhDgngiK0awnhcMgdNZzMQoOIJC044qgRLeg12IvI +bzdtzK+DknPW3MC5QbmuJiozBPokyhyHR/C+889f2lR8OTjSGagLwjtHf0oEuEn4 +RdTBWWzNZclKe4J6UIbi3VG5kgUmThCm12TmtABmJmXpeNl3wpyYNPxZkU1huKNl +Pi0Buu1SroWoIlwR8n2DNvDIU8PvzmtrfZoDBMopC1a6lBiZX9tKwZLUDb28AgaB +XelJ+L+nkaoLjbNgNxGRMT7N99hWXsOcWlUVAAYptCVSYWppdGggQXR0YXBhdHR1 +IDxyYWppdGg3N0BnbWFpbC5jb20+iQE2BBMBAgAgBQJFWj3AAhsDBgsJCAcDAgQV +AggDBBYCAwECHgECF4AACgkQdt2xaBiAZGS/AQf/fCrR7bLqAhiI9ojuOgTfwzRv +9Hf3FcNdRCnVzmRFzE4WGHSG7R92xLL8avtiPEdC7p80d3+bf+QKGSJ/Ym4a0JqE +KeX08brWOtIfQQK7wd7UgCJ3ufWcbQgnHzhgc7oY00FZAmQfv8TF8Uxqpe6dKXep +4S3RN1c9ygg643ey7u85knAk+rs1OevZ+xl/IsLN6rSnQ1B8uIJUCct8+5YuGxd7 +VHCAgDEri0zf7+CMWxVpOJgcegn9Iy8rfmif8BUs0620xvNRha03of2UQZau0WzB +MIMkSgOUhSBdsYNYe8TU9SfJGXabB4R6xDimMDbOXs75ypQMoPiEsf9urx7T6rQk +UmFqaXRoIEF0dGFwYXR0dSA8cmFqaXRoQGFwYWNoZS5vcmc+iQE2BBMBAgAgBQJF +Wj7qAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQdt2xaBiAZGQEYQf/SocY +SONVEePlZtFlLmsebZLZ8sn+HZBPepcJf81eK7YdXcca7QSeY3Q6vwshbfZsUOJZ +fu+6gaD1MnPtBLF4RWjLBW1OOmxLJPtv5bNifjciuhuvRgBA7y3xWenfNgV4FeKk +qX8ArRYJQVgy7X5Lv3ccbXcaNq6ajT2xDi0krMkn0TtU1vdkDSK56PRzAwWxA/X+ +4MKQZF/6964or2rz91iX2OnylEj38q+F7/dOaasD/EZpjAh8nipqVBVL3Rcy2gFy +7EkTao4tOSo1JVrHW7lgfEBxKVSrgHyhnSxx3Z773edp2qnjZPAcv0qiEawszhkI +vIuNSo3oTbrOW9w2tA== +=FCqB +-----END PGP PUBLIC KEY BLOCK----- +pub 1024D/8004C922 2008-04-01 [expires: 2018-03-30] +uid Aidan Skinner +sig 3 8004C922 2008-04-01 Aidan Skinner +sub 2048g/A1375A8A 2008-04-01 [expires: 2018-03-30] +sig 8004C922 2008-04-01 Aidan Skinner + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.6 (GNU/Linux) + +mQGiBEfypHkRBAC0tGJGaJnreJa5eF4KWLxEuPm6zuTrw7V8FRh4Wx7SlSE8XH0O +08BMAUHWsVDaiAUwGIcnbADpZjPV70ChbRVgasA3p0d5Bf8koRd5clb9cb/+ayg9 +r6sybOEuKLEHL8Va/TCea4ANWWzn2EPUjM6CntipSSTsM4idXo9HtFr8AwCgncYV +iHncPMTpCc73mbmhpNJrQCsEAJpeZn8Eqy/WvOIxUfsRwM9DI54eu5oEyw1PyDoj +0Wks5OroPprOaC8wIwI/WWjmNZnGvYsq6ZwEs3EhM5PKRNkOuiu5JwRRDgkaHQaf +xoxoY6Tn74DT19qGDngf76jLgMCO7/Amqe90rlJNXGwkGHdsA33ItRYcjebtWVIQ +QgXEA/49akjY/tc4XGsj+QiwhPEYX0/BSdo9CkaeuEpeTDLY7/guzxTeUGALorTW +PYDH5ie8XZqwyEsz6yFDMk3hoNsrX0Y+gH/mpQVqox4dXCCWPF7bDvNZ/W7uJ5dS +dwYhHjZ0hvDDhW3VEFlQVEllrBYKQDVNPhZeOcgyLCifsdJXWLQjQWlkYW4gU2tp +bm5lciA8YWlkYW5Ac2tpbm5lci5tZS51az6IZgQTEQIAJgUCR/KkeQIbAwUJEswD +AAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEG+eB3yABMkiQLQAn3NFZrGrzW8W +1s8YnrAAxJ6xWFfFAJ9FkR159MVTHaJGAIzn0Iq9eLDUqrkCDQRH8qSPEAgA22Cf +Xspnd5mqQD6FfWUbZAO6AQ0ehwprA/q3PqdAAtQXbJYRzmuIIwrb50Md7FEwCIWt +FS0wtbSfPTtDE+C4P93r5K87U0Xg/o4MundjoPjeCGNsTYicpewdlS2WcdWl2BJI ++G5yPLhq2/vTI8Sg2sCpktunEFw/g/BzsigbJhsSC63NV8LyHBhbBELifFySwWh/ +ZzPCpXbdxzUdwwi7P57+n/DsmfjbXe0okr2QQL4EtDapqvcwnSlz9c4hNw9ku/m9 +YMiQMKRSmtG/ymH7u8F1CZRurvOaaFFbaoWhSZF7nnUH6H4z5HY+aNbufXa0Ffpb +kTZqLD6amvrTr6NIbwADBQf+Pn2PkGHhSrF1CWQBDNJC0n/vqnc48QxcGoN0Lu02 +Rj0/UNwVKRFy6VGLBEfyxR08ZWi2EkvlYm+VGyv+wQlfAhwyDBHAEVE+j3lWq90+ +B1Pnf5j5p1vRfKCkAWFddILJUoh8fQKUinZdoAWZf3Qn10HoIkAoYw+wo7xIvwch +/zIpq45n24W/iDcKAggJ3fl6gO7+Hkttig3nbcaQ0xDi/XwkBP4cUqnvwka2E3Bu +5KiFKc8cdy4mtYrqiDDZ0EZLr7Hx/3uy8kaIzdsep/g0xKOka6Xs10XG3Sg8vDmv +OEhlDHlTkVF8WpxsabDOselYSu6kURiLKkgHvrUe4OM+SohPBBgRAgAPBQJH8qSP +AhsMBQkSzAMAAAoJEG+eB3yABMkih7YAoIwSenHROUBAj/ZU9qttReAoUPeLAKCT +9JRkXdhK2IGqlgc4N0sfZqdx/w== +=wO1+ +-----END PGP PUBLIC KEY BLOCK----- +pub 1024D/4CD790EB 2009-04-30 +uid Martin Ritchie +sig 3 4CD790EB 2009-04-30 Martin Ritchie +sub 4096g/E0525999 2009-04-30 +sig 4CD790EB 2009-04-30 Martin Ritchie +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.9 (Darwin) + +mQGiBEn5m1wRBACiYXJdzZ5DX3GJR1cF6MJOZgpFEd6JU0wxjMlflR02Yc0/9XmE +xJvzFwWnUNx06tbmmQNSL+qUj0xfiDD4Jz1aMdwfZbVt3MxH4GXKEoOgvpQ8VB4G +1uvJqCI+qZD/PbyhxGFviA71AiYwzUjplygTFlBBnDFD4VB7orS4XaRwzwCg/8YL +4eeJcEM8Tp87gh3ItTvuVbsD/Rw87F7QO+rlfcJgmg/OUAxWTd+ajIDbvN+e+btj +Ck35GmfHFnrsWnbhNdFxqO8UzDDjDiBm+YV8U4xmoe/EdgSk9iy0qYFfh5Mi/GgH +Q1l3EYXBcksfzM6QJf+2lDH+qC6zVMzxTf32N8//yDOr1F01KPeoVAXAm7wadzFy +LBeYBACevVLOZBjf7JNtrlA4gWe3VDY4XJAcfMQrZtsj4qwyj4Yq0TIXofdYwxaw +4nwCVE2v8zum25doPhHe0SMxXlNKNrHV5OmhZ9eeJsSpMjDNvGmdn4nDX6s81gYM +9asin9++aZr5LbyID/bJ2g5rOTT5Geg0jdHQUj4bl4UXlzGKXLQkTWFydGluIFJp +dGNoaWUgPHJpdGNoaWVtQGFwYWNoZS5vcmc+iGAEExECACAFAkn5m1wCGwMGCwkI +BwMCBBUCCAMEFgIDAQIeAQIXgAAKCRC7Q8SvTNeQ69g9AKDt+JucK9iQC13/eGZo +VHC46iEMawCg33pDiPHFispbT9YQ/uLfRjN5zbm5BA0ESfmbXBAQAPkC3/r2+9BS +Ix+0qap/vYWXO8LeBIZWWuFU0vOlKl8AgmfFQ6d5cYqKF26Dz1GEZNuhkQ8q9WKy +X4oJFKKZMTtKWvJQRawPi9l+yoBDbiHlO6PByblxuXzfcIpOxvNr56oJa2/SY2JD +p3Bnkt6qPeI5uylxH1UxT4kG0DozbIp+13gpiO3vgLu2MMAPnDZ2dnJ2SsUpNg6H +hjj8j4wDn6WEdb5YsBRDju+6fGxU/Isrx9S9lEUOc6EvhAzMfHTg8NGktQ2Y+BmJ +byGjP+iH+M/zg0gF/V4yzT9UGtm3xwhaFCxcRPIpYuN9Boz2YqhGt0MRWSYu+BZe +BYGSmvog1xYX7lmyPfprwj6MEOQKDnfnUduciRF9WEjmnR09mapwqofxsNqWxg/L +/glUH6uo7vAmRVi9ObjVk/tWHtk+jqKz58vj2sk2MAX8/sfST+2ICxA2UlEwtKxw +vrlfTowJdlLq3SVtkyWkqXszScC9kg7B3uZNYGEL3P9/kO4SqRfHbh0aEFQ+hnGA +dFdbUE8OOFv3rYvt8QDKZvu3YvgketVWXZUTR3ULWXC/QDUw8NP6wYBZn27aDVYl +5zocuZRyN4bjIyEIw6fWiW/fqU3IvQSPaCdaFZz71LGggnCAFCnd6IZZp4u/tyws +YIVMQmo8bmz0vzbMrq/I1BHQZ+5KLVk/AAMFD/9eHRI8fQqov0mbIX+H+DA+jnQ9 +kCRDWx9t85gzVz+yXEAGfErP8nqgkToowNQ9icdCj/o2zYhw27dLDgvLMOFGRydd +47f9fkZMZZ0WRuH15UHCNwEisGyw2HPi1LPUOMVnBMGFf2lLWM6kGN1zqVeHZ++a +RU2T5lvscFFx0ZTb+Lpaa64s4Y+uffylsSepL+JthPjOt+6+zoYaQz9apCOE7ZoJ +yVb9esgZ19ljTOzsiFNWPwzppTNyIP2UxdgASP9PTnaKGRnM5K1TL1M6IFAnP20D +4a3BDSkQfivF9aeiYaiowG1y9pR6f4E5BnhxK/UMe+HW8kgRkb/nsXITGam6NI+Q +ZLNLFzbWGxPL/HPhSOwa6BleJEFGE3oJsneMMuWvZZ7aVC/TOsEORXkNEc1aswD/ +FyyRcmONmepNbgCQG5cxa9arWAwRc9lYK8KB9Bcq643leEwbfZf7nyefBifAWoC1 +cvn1Db4yij2xe2FLrd8SLCpshX8UUkE8yRvUsZntC1PIChe6ag601DABXWFnnARD +wxSxAVNyjpIahh8rV6g9tO7v4PPqqRTbtgTqK3N9/vHiqaI6PsPVhtK5GixKNiPK +/4g4lOwIrLK3C2AFQ1rzReGg2urOikgw+VldjA4Ml4C3hz6wESnmnR9EhTU7/Bqo +4raMsQScmFbiN1khgIhJBBgRAgAJBQJJ+ZtcAhsMAAoJELtDxK9M15Dr1NEAoJXs +EXBsSGuoaUoxr1UtL/pIVL8lAKCEJPjkA3w6sQ8zCN/EH0DNqsM3ig== +=2ZcN +-----END PGP PUBLIC KEY BLOCK----- +pub 1024D/F947EB65 2008-11-15 + Key fingerprint = 6248 903F C80E C609 4F9E 7CC7 EE47 2841 F947 EB65 +uid Rafael H. Schloming (CODE SIGNING KEY) +sig 3 F947EB65 2008-11-15 Rafael H. Schloming (CODE SIGNING KEY) +sub 4096g/079367FE 2008-11-15 +sig F947EB65 2008-11-15 Rafael H. Schloming (CODE SIGNING KEY) + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.7 (GNU/Linux) + +mQGiBEkeOBMRBAC++lIdguyJ+qXv/TCPuYIfAkfvwrzSush6iOT8vdJIj4YS4CHM +qsrcU+ujIQMQx/kG3h/baYlkKKrMXVE2sc1WkzwkR4KXDe8NfDZVSyxVafq1JOHe +kW0VYpaL4F6UIXumRI5B+LBoBF9LpcolvgbLA3X5z5mCw+cgYWpE9vghIwCgkE8c +acp6KRxfBn+puvJEOhyY7sED/RxImMlW3ACp6MqCigKW182mjBQGOivRNeZpaOWn +Z0b1rWNO64DAsNALTQqsoJbddWwi35bHV9YhA8i1d0OkSowS83m5M6j1i/1A+yny +Vp3XB/Oc+LLGqNYsRcI3t1P/DtoDDi+qmFKBvNccsTIbrfXrNSH9KaHDoHF8He0G +NcuiA/9c2Yx81qrAa3nY2BaEUU3EB6nPtD2rZXOR3HL0C6p4LLZLvbxtZs5AKj1f +loN9cipJWBZozd4IHrhDAOvfwE58VOZXJ2zrp9WlZ2fLtMXa9a/IWwMsiupOYh8G +mqKoqdEKqDGTl1Now2GlzTAXrha+p8r6TPBc+dT0iwKMWSu8z7Q3UmFmYWVsIEgu +IFNjaGxvbWluZyAoQ09ERSBTSUdOSU5HIEtFWSkgPHJoc0BhcGFjaGUub3JnPohg +BBMRAgAgBQJJHjgTAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ7kcoQflH +62WtIQCfRHdJlaXrdPjCKVg/EcWGmn1JP68An3Oj64ygDeY1ahNG5F4hNXS4I1dl +uQQNBEkeOBMQEADj1WCB8ej2gboO96tZL3hWAoVt2JxzjH94I7xnv6fCcYLc8k1w +KawrCOnDlCzqSxXePoMwCkUIbFWMOXO7/GFFl/I75Tna+Sb/6BRqS9C2yJZImuHC +i4wC7ZXJSKoxHycAkZjhChl57o/EM3Eth2nBq8ZJ05nfU4IpRDXRLBd9CgQbyNs4 +rqYnY4hfwKIeUK6gijj+YaqAMTsu31xRwIjAwh+FJJxX0YZZbE3D3hUdtfUW925o +KIcYUtQRgp9dPllFBPscCXfvYix7o03Wxd3MQdfjLugSL8bU8ANdzxc74ePTV0p3 +bL8KsG62YguNA3n6fXHZQagNxyhCGa51R12saOmj7tKTCX9aKhs4tq+bQAfw/49G +NsRGJEtvNlWzWr3EhNHoKdVSpvVC5uj87+RUEKrupeZX9u0D3Sm7pS2v2AxxlldH +sW2eOCy23O6XTdGnbG9skKEAuszHXN2NZWJBEVoLYCXP7gxuA2KWOMNcxerfrhR9 +dyOBQcaelHKC1roBgVuIg3rlH1CKv6KINWRsRWkFiCrPE/RXCcdTuaiE9Ss3bdAp +7B7RBA1xvCr1Lj4ICHCfo4JtymQOSQRkqq3reoBk2IOXvdTkZ3B3tbWtASM2H5Ww +7kCHZZ1OT9saBPNXHaV/vx9QGRjAb72AWwYBqNazhVSVDyfeQuf0tkEV6wADBQ/9 +ExGBMgxTZGvf2LzmDqu+dItGtXG3EIi4Lh91Biyx8S21p7KtwY7HTCx18JneoRlJ +HLLNrtF3Rp7gVDuxEJN5F9q7dUlRnFAz0Z8eXf8fSQCUvjmuP2V/iHPyfHhHPNm+ +KcjLQP5H3WfIYsC7sEFufkvQFdyccQnm66V33NlBrTEfJE2HFjCdAh4nsEkpjdxZ +m774c2rWGX8IhzfwmqJj09P9SPjY5l/I+JOLeU0PSdru9Gon+z07GdRTCIRdQsXR +uNYXbRGBdYmV/QdlP08B8NRQnNjusNVEawJQo84aZlut1LgX0k9bL8s+1Sepr04A +yb+fJ7reMoxvkTyG6riIYTXr/OpVSqCNO0h477E/myCftGzn30OGzTEgxaCWSYLE +2jWK/kqLtUcthrwYf4Ksmio083ZlNkNBmlJUYHMr8djCCL2xl0V/miJRnu/3/z7O +QzMUrOqfMX2xran5x4B75GzvTwYJsEyixHcq6vI19KWCG5KsksFwaFBQ3kvyNc/0 +Oar1FnK597ynPadwGISEzK1jSRZp0cIJKUlrwsm9crS+rWp8Z1gHflhEPVHw7Lp5 +BFcqC3gxzxJBBgnckNZzP8IEiTykz0E0F2qsqLstEfsIERQbqXU2VhEO3UDKKuEX +34hJx+wJxaGsFPeWHwVYD4fOdQo6W1oyFG8C3JQvJHGISQQYEQIACQUCSR44EwIb +DAAKCRDuRyhB+UfrZRj/AKCF05jpImxWnTE3NFcKOQs80r1wLQCfaYGsG9UW0OyG +uzHMwWjy3fI5vO8= +=7jSO +-----END PGP PUBLIC KEY BLOCK----- +pub 1024D/F9F488C8 6/1/2009 Steve Huston + Primary key fingerprint: BDCE 77FF 4951 C559 97DA D55A E33C 8BB4 F9F4 88C8 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.9 (MingW32) + +mQGiBEokNtsRBAC/abmZz/J7Xb+00cONQyDS7H5+jq09h9f8rkahReqX+QP0i9F6 +5nY5nULDuOpBcgYCRmrnHcSk+pBWeKYal+kpKwRc6vSXy5AXE6iePHXXpr8LSSkl +DoxQkNRw52FVh2oA1Tb6lIv1diNuK1mJg+KT5UA+jbglhZbgQ5L7YRweewCg2qZD +6PYVb4HkijgPHKUj9BpWvQcD+we/mfi6PcU6hzCjna3n8DPFXfdWvmIjtR9cZnbx +VO9CALrQLKbdTwNd6bsDHxiFQracBJmvoiGZmaFJLhI9c0okee8FzwjTh7Y5SPWn +rllq3PtXjZ4SRMz4Bj5AYOjX44aaialwtS/w+JQdihAPpsL3nDM6ttOrHVtMdaN9 +ThxkA/9yhogLjeeKhdukaUGDtOdkqm+vIbiArCGHUWhb0mDzQRsStqizRTrCgl4q +EYI2OdE62Zj5sDAXBPI/wuSxcgr4zqSPvV+lQZW6gdp9bKdZglYcHcYHrdsg2CwZ +Cx5IM2/+Jt6txOf478GtPrzIgLqy709D8nb8/5V+QgjEtSA63LQjU3RldmUgSHVz +dG9uIDxzaHVzdG9uQHJpdmVyYWNlLmNvbT6IYAQTEQIAIAUCSiQ22wIbAwYLCQgH +AwIEFQIIAwQWAgMBAh4BAheAAAoJEOM8i7T59IjIKvEAn30xICmorA9Z8EzOgOFf +3ikP4mqQAKCxL51xoaL+qFcidVWmwvCKlzjUjrkCDQRKJDbbEAgA6FvUZdm9LBME +tC49xtgJSE4GkaOgz0W0l5otMWMzy3NPW9PJtKopZWJ2eJvlHoXcGJL27nVGaOFJ +8ixYPgkAFQ7JX1IDAQQMDXRro/cMsj6usmNbqMvrEETEiL9rP4iH8qwjOSKiHpIG +sQy4AwmYkJg2zBxAIrrJzLyWicz75yO/PT81CX6ar6CGl1H5JWGZwerjLhc67gNu +AyXKEVQpKk/T78uFD/HGNd6C9vHjb5LbuNAlRISwgoHAyvayvITjZZtyrr5cWVPL +mT05FoweGAjJ/AjKfIH4lTlzE+ElC1WEaPwinzo22bQIQPxS10G9DVqm7h36VGH1 +NHa/EME56wADBQgAorINiaUPnCUPvgvQzmTgcDcCDvtPuxl8OzYT30QQSQwOLS1y +rvu4DLW/DH5s0yIgzyX1PGhGSELU07qgj05W906EBt0D5KNiUbKg2lsD0Nec+Kzq +jmej7SbZOJGIwNJe+U8s5iHvvP7Ak4YO0Q6hGtsmhC3UO5wBF8XjEbWCAJpjYbt3 +cyPyyArzW2X3IpICsuzdtkzQttb6BJy+ZHJLMHTN9/J3+naQrqvjiFBJY9jcUx5t +XxWrfhW0/kjphLvcNm3RBRW46UDMzl2DA74kt/2si3dS7RikEcsX0wQ8pjp47bmw +TpsjEqzUHv1bU56V+FJWi9GdRLsJaapq9dDV2ohJBBgRAgAJBQJKJDbbAhsMAAoJ +EOM8i7T59IjISAAAoJwqwTBx2NOi5+CKBZxKqxSkHVM7AJ9+oJXoulLDoMhvqVIo +e8ukbGoaqQ== +=rn3+ +-----END PGP PUBLIC KEY BLOCK----- +pub 4096R/997584D5 2009-10-19 + Key fingerprint = 36BE D3F6 694B 1C93 FA37 EDD8 C5CC D011 9975 84D5 +uid Andrew Stitcher (CODE SIGNING KEY) +sub 4096R/C398A6CE 2009-10-19 + + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.12 (GNU/Linux) + +mQINBErbxwUBEADIcbsMgKbiX55qhpeHsdnajRp3jMMZOGiRfs+/Ny1Q9fmXykS9 +I+CThrGk0WAj+2eoVpyDHda1AQH6G2+xln4/l3h3DlqOu4Wk1JloU9CSth83D7EZ +sB7M4yEdHe6Rdcbrzw62Hroet+v01n0hH3FujR1GeXCgzmM8XYGWFLS6Od7USThk +A3O4QFgUEXALKDe9I45Nayq48f6iqoXCKSv3ikp0KfoK7Kr9lqFE3GMU4kjeyh0y +Ma0ejcf+6K2eljhhItgdnNHqY7ztegnQ6idKLneJD4JD1obvVFu9ubOlGnJzXzHW +7RTg5vSLDFOBmah6vhd19zhXRJgvkHt3IV4Uv3+OYrwjUVQI5/3pVFKdvyY1Wyt3 +wbo3KMCbhiF9I5LMcAeq+28KVavtH2vCxG5gvkcKD8s6x3H7MUxf+vpPWkm00kWj +A1LD6ae1B2FOrEpqLGohS4CaWdbj6YAZKGa/PPvJQJdqD8fWKonCI4J10/jmph2j +OemdDHX8mQuOUUo8NbUJMc3m4am5GgtRjGXpZ4izmJJHJK7CjTvIIIpsAVT+odr4 +JWewcB6UjFGrl9LtKCxv26O//iCXAH9T7WYMCw3uI00sPtXO1rb4uV8Cws+qkSKO +daygWgJgNrcbT9lVnYhe3j9XPl0pEgCqvv3xx0GaK1009t7FYIEMjdo+bQARAQAB +tDlBbmRyZXcgU3RpdGNoZXIgKENPREUgU0lHTklORyBLRVkpIDxhc3RpdGNoZXJA +YXBhY2hlLm9yZz6JAjcEEwEKACEFAkrbxwUCGwMFCwkIBwMFFQoJCAsFFgIDAQAC +HgECF4AACgkQxczQEZl1hNWRCQ//acKO4ffXdh7c5m40aBQVmix7EGirNvK4ZlPU +IYVUZpR23wWLaAaQEvpnxgOBNiC/ZiBr6mPrtbI/TYfx1rQS8fc5lye+333jJkWz +hbuuFUl8Y5AbaXrqwIHyFCa+O24k1WsysFkw1yMN+AXkj7U52B1q8wCCklsT7hEf +yd80ZHeRDzfMG9mXfdTtXI7wcGnGqa6mWJlqt/20Qr8eqUQhqbBgR5RG6QnZdC8t ++8cx8fQafqobFUURln07QW4duNJ1q0otmpiUlEKzR9NPeBg8ZnUgqRLRMyv/hTKr +Jl6+EaiJ7iotJxKeTf14BE2eLTLLeuKIsI8lZZMP8SPky61tuwM5gE3RSWVZIHzn +libN4/jg40B4JnZk6EEMHS5pHB/rHEzPcYtbpH2lO7kc3DbwrVVdnQdxWIFMGwE7 +I2v8ABpsIUcdXTvWVgbw0NcIrnMVBamy6Jmjy3VtOFNNWfDrTtTW1UNCgWQJIzef +5dM0yfbwJ/TCQ8G+I3SD8j6Ge4TDqYSS70hqYEtbK5MpKoDErC7J7temQ7lBKMmB +116fpS47t6Do7lFGlP7WNeitvfW8GiY/Fu1lRpTX4K6PFrj7qAPaYHhTeHh35e6Y +F6AQq3E8lZ7i6HthAmsHtGHm1LIPDhme3kz0ThDUDrrPaoLNPwyHyz6Vlmem//xv +lDt2EI+ISQQQEQIACQUCSvDjLwIHAAAKCRC1GSdFt51FAjS4AKCosMPRb4m30u6t +3V2xxKg1pkKlwwCdHIIu0rGdgkbJM9yjtnAPeLj/pRGIRgQQEQIABgUCSvNW5gAK +CRDuRyhB+UfrZd/JAJ44ox91HHG5qHrL9cu1uECUg3ubGwCbBMWagmRmoGHEQNWe +Ue2SiDO0F2C5Ag0EStvHBQEQALF+N3d6tCg9ThY6FK0IUEN++g1jgjtNrO6a1Xt5 +WPvA0fWjLw9NZxKCRRrMm/6+jE8OxsdU2V3yjko/FRXKV7Dc3B4s1BGlXnnnglgW +pQ2x1+pMI79Eq8j/H1/NNTerRpNVWdP5SNyMaK7dzoHivPzfGdHj2dWYv3LgZkWI +rsp6Z5URkiVqIEclAioLU0J36+XW0l994WCGxWrMRR/HnIF2gv9zajnmFEL2MYnI +RCrl29OOIqArXil31y+zHQW9+hzv7eyIvKA8mRABXu4gAfX6cDxQXQJDNiS5tatI +/LCDks0dJw9wnuGTm8aDbwBKI0X4ntr2ZtI3Mjd6DxhTkLXHS7GEPrK0mMZ8Awpg +zkfQTK8sPSKxxwCJem31jNTYF7w3VCkk8vaYj+q6di2mPvUqblRk2wLBybbqrZ3H +D5IFv2UKLKHcHEqYMT33nUw1skRAFSUWLYoW7tHx5coYxzOBOGkUsI4Xe4oL1aOn +VMjsS2jNYV/caFOkyPRH06CViiKn6+4W6rXHpkDkN2m1bvgL91umUBAy8+IvWHFc +TTBRbtBNzptua1HUSiZRajUg3rc1aiwBQuI1IsNsUdjvGOhUcBJUZwSV6U6RdbOn +BC6dF6PWg3LaqiqmZeQTYR/+jvVSAFb427jW7mk4Wko1bEwkzNrPWSW8aVm1rwCX +AuiTABEBAAGJAh8EGAEKAAkFAkrbxwUCGwwACgkQxczQEZl1hNXctA/+Pykafax3 +AvT6EHanG56iOdzE/gWxv4UZh9zTYAjBf36bt1kGDIJOdUVWdGXCZpL2Inmle1U4 +HfbEZqcC/3rzslzF9uSyQFa1fxJxz2X82+UZidlPK5KqAoBW6xW0juAOkI1Z7s+d +MGky2M8aNLq6NSSAQ4VDTd2rZmFWo+yi5l4nn7wkvkrHnVmmwY1rL7TLZbZj5ynY +VNJyy81qQum2Jj36eMrlGf2zbGrQ5vEl8gq1xBL+6T8Imr5SbRpmWZoj2JZ14pfq +Atn14B9yK+B0+lCJ4uzGNLkyVKVYQvjlpqqodaV0u6lxljXX3jDtCu7MSaXSUbZv +UFpVgVqGrvxr/XldgZ8rD3WCiK69DVOi3KTqk08dAXWE5oodvZWHNdgTTIgoCb1k +rP9GIkimeV3sC2huuGI29mjkzL86Ca+hxdlAzo1VOCFZxdHuq4AypEn+R13UT6yk +36pRYsXTXe+ebq0fVSXt2sYALJ7hOtAqFvTS0kUjII73N9n4G9svqBldG43SwR49 +VUp3q12qmz71yz5YT3J9Y+CBMBa53lwJEx0JpOQ26e28EjXEiEHyj4Xi8IzE0A5S +BEZXjsEqMNmpz/GzsLhRkwmxLBSiT/8kGXb6m+g/RLGH6qnLm1I6eFZSXXmr/rbn +98DlwjCP/7B3MVcaMlPP+/s/M3jqLasRybw= +=7tgO +-----END PGP PUBLIC KEY BLOCK----- diff --git a/trunk/qpid/LICENSE b/trunk/qpid/LICENSE new file mode 100644 index 0000000000..5f84a6564b --- /dev/null +++ b/trunk/qpid/LICENSE @@ -0,0 +1,7 @@ +Please see the individual LICENSE files for each language +cpp/LICENSE +dotnet/LICENSE.txt +gentools/lib/LICENSE +java/resources/LICENSE +python/LICENSE.txt +ruby/LICENSE.txt diff --git a/trunk/qpid/NOTICE b/trunk/qpid/NOTICE new file mode 100644 index 0000000000..ff65d299a9 --- /dev/null +++ b/trunk/qpid/NOTICE @@ -0,0 +1,8 @@ +Please see the individual NOTICE files for each language: + +cpp/NOTICE +dotnet/NOTICE.txt +gentools/lib/NOTICE +java/resources/NOTICE +python/NOTICE.txt +ruby/NOTICE.txt diff --git a/trunk/qpid/bin/LICENSE b/trunk/qpid/bin/LICENSE new file mode 100644 index 0000000000..bc46b77047 --- /dev/null +++ b/trunk/qpid/bin/LICENSE @@ -0,0 +1,206 @@ +========================================================================= +== Apache License == +========================================================================= + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + diff --git a/trunk/qpid/bin/NOTICE b/trunk/qpid/bin/NOTICE new file mode 100644 index 0000000000..05f39ba176 --- /dev/null +++ b/trunk/qpid/bin/NOTICE @@ -0,0 +1,8 @@ +// ------------------------------------------------------------------ +// NOTICE file corresponding to the section 4d of The Apache License, +// Version 2.0, in this case for Qpid bin scripts +// ------------------------------------------------------------------ + +Apache Qpid +Copyright 2006-2008 Apache Software Foundation + diff --git a/trunk/qpid/bin/mvn-deploy-qpid-java.sh b/trunk/qpid/bin/mvn-deploy-qpid-java.sh new file mode 100755 index 0000000000..3c2a9fd05f --- /dev/null +++ b/trunk/qpid/bin/mvn-deploy-qpid-java.sh @@ -0,0 +1,71 @@ +# +# +# 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. +# +# + +#!/bin/sh + +qpid_version=$1 +repo=$2 + +if [ -z "$qpid_version" -o -z "$repo" ]; then + echo "Usage: mvn-deploy-qpid-java.sh " + exit 1 +fi + +set -xe + + +build_dir=build/lib + +deploy_artifact() { + mvn deploy:deploy-file -DuniqueVersion=false -Durl=$repo -Dfile=${build_dir}/$1-${qpid_version}.jar -DgroupId=org.apache.qpid -DartifactId=$1 -Dversion=${qpid_version} -Dpackaging=jar +} + +deploy_artifact_with_classifier() { + mvn deploy:deploy-file -DuniqueVersion=false -Durl=$repo -Dfile=${build_dir}/$1-$2-${qpid_version}.jar -DgroupId=org.apache.qpid -DartifactId=$1 -Dclassifier=$2 -Dversion=${qpid_version} -Dpackaging=jar +} + +deploy_artifact qpid-broker +deploy_artifact_with_classifier qpid-broker-plugins tests +deploy_artifact_with_classifier qpid-broker tests +deploy_artifact qpid-client-example +deploy_artifact_with_classifier qpid-client-example tests +deploy_artifact qpid-client +deploy_artifact_with_classifier qpid-client tests +deploy_artifact qpid-common +deploy_artifact_with_classifier qpid-common tests +deploy_artifact qpid-integrationtests +deploy_artifact_with_classifier qpid-integrationtests tests +deploy_artifact qpid-junit-toolkit +deploy_artifact_with_classifier qpid-junit-toolkit tests +deploy_artifact qpid-management-eclipse-plugin +deploy_artifact_with_classifier qpid-management-eclipse-plugin tests +deploy_artifact qpid-perftests +deploy_artifact_with_classifier qpid-perftests tests +deploy_artifact qpid-systests +deploy_artifact_with_classifier qpid-systests tests +deploy_artifact qpid-testkit +deploy_artifact_with_classifier qpid-testkit tests +deploy_artifact qpid-tools +deploy_artifact_with_classifier qpid-tools tests + +build_dir=build/lib/plugins + +deploy_artifact qpid-broker-plugins diff --git a/trunk/qpid/bin/release.sh b/trunk/qpid/bin/release.sh new file mode 100755 index 0000000000..b0b196fc8c --- /dev/null +++ b/trunk/qpid/bin/release.sh @@ -0,0 +1,251 @@ +#!/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. +# +# +# Script to pull together an Apache Release +# + +usage() +{ + echo "Usage: release.sh [options]" + echo + echo "Options: Default : --prepare --svn --all --sign" + echo "--help |-h : Show this help" + echo "--prepare : Export specified tree from source control" + echo "--svn : Export from svn" + echo "--git : Export from git repository with svn metadata" + echo "--clean-all : Remove build artefacts and downloaded svn tree" + echo "--clean : Remove built artefacts" + echo "--all |-a : Generate all artefacts" + echo "--source|-e : Generate the source artefact" + echo "--cpp |-c : Generate the CPP artefacts" + echo "--dotnet|-d : Generate the dotnet artefacts" + echo "--java |-j : Generate the java artefacts" + echo "--ruby |-r : Generate the ruby artefacts" + echo "--python|-p : Generate the python artefacts" + echo "--wcf |-w : Generate the WCF artefacts" + echo "--source|-e : Generate the source artefact" + echo "--sign |-s : Sign generated artefacts" + echo "--upload|-u : Upload the artifacts directory to people.apache.org as qpid-\$VER" + echo +} + +REPO="SVN" +for arg in $* ; do + case $arg in + --help|-h) + HELP="HELP" + ;; + --prepare) + PREPARE="PREPARE" + ;; + --svn) + REPO="SVN" + ;; + --git) + REPO="GIT" + ;; + --clean-all) + CLEAN="CLEAN" + CLEAN_ARTIFACTS="CLEAN_ARTIFACTS" + ;; + --clean) + CLEAN_ARTIFACTS="CLEAN_ARTIFACTS" + ;; + --sign|-s) + SIGN="SIGN" + ;; + --all|-a) + CPP="CPP" + DOTNET="DOTNET" + JAVA="JAVA" + RUBY="RUBY" + PYTHON="PYTHON" + WCF="WCF" + SOURCE="SOURCE" + ;; + --cpp|-c) + CPP="CPP" + ;; + --dotnet|-d) + DOTNET="DOTNET" + ;; + --java|-j) + JAVA="JAVA" + ;; + --ruby|-r) + RUBY="RUBY" + ;; + --python|-p) + PYTHON="PYTHON" + ;; + --wcf|-w) + WCF="WCF" + ;; + --source|-e) + SOURCE="SOURCE" + ;; + --upload|-u) + UPLOAD="UPLOAD" + ;; + *) + if [ -z "$SVN" ] ; then + SVN=$arg + continue + fi + + if [ -z "$REV" ] ; then + REV=$arg + continue + fi + + if [ -z "$VER" ] ; then + VER=$arg + continue + fi + ;; + esac +done + +if [ -n "${HELP}" ] ; then + usage + exit 0 +fi + +if [ -z "$SVN" -o -z "$REV" -o -z "$VER" ]; then + echo "Usage: release.sh " + exit 1 +fi + +echo SVN:$SVN +echo REV:$REV +echo VER:$VER + +# If nothing is specified then do it all +if [ -z "${CLEAN}${PREPARE}${CPP}${DOTNET}${JAVA}${RUBY}${PYTHON}${WCF}${SOURCE}${SIGN}${UPLOAD}" ] ; then + PREPARE="PREPARE" + CPP="CPP" + DOTNET="DOTNET" + JAVA="JAVA" + RUBY="RUBY" + PYTHON="PYTHON" + WCF="WCF" + SOURCE="SOURCE" + + SIGN="SIGN" +fi + +set -xe + +if [ "CLEAN" == "$CLEAN" ] ; then + rm -rf qpid-${VER} +fi + +if [ "CLEAN_ARTIFACTS" == "$CLEAN_ARTIFACTS" ] ; then + rm -rf artifacts +fi + +if [ "PREPARE" == "$PREPARE" ] ; then + mkdir artifacts + case ${REPO} in + SVN) + URL=https://svn.apache.org/repos/asf/qpid/${SVN} + svn export -r ${REV} ${URL} qpid-${VER} + echo ${URL} ${REV} > artifacts/qpid-${VER}.svnversion + ;; + GIT) + URL=${SVN} + GITREV=$(GIT_DIR=${URL} git svn find-rev r${REV}) + git archive --remote=${URL} ${GITREV} | tar xvf - + mv qpid qpid-${VER} + echo ${REV} > artifacts/qpid-${VER}.svnversion + ;; + esac +fi + +if [ "SOURCE" == "$SOURCE" ] ; then + tar -czf artifacts/qpid-${VER}.tar.gz qpid-${VER} +fi + +if [ "RUBY" == "$RUBY" ] ; then + tar -czf artifacts/qpid-ruby-${VER}.tar.gz qpid-${VER}/ruby qpid-${VER}/specs +fi + +if [ "PYTHON" == "$PYTHON" ] ; then + tar -czf artifacts/qpid-python-${VER}.tar.gz qpid-${VER}/python qpid-${VER}/specs +fi + +if [ "WCF" == "$WCF" ] ; then + zip -rq artifacts/qpid-wcf-${VER}.zip qpid-${VER}/wcf +fi + +if [ "CPP" == "$CPP" ] ; then + pushd qpid-${VER}/cpp + ./bootstrap + ./configure + make dist -j2 + popd + + cp qpid-${VER}/cpp/*.tar.gz artifacts/qpid-cpp-${VER}.tar.gz +fi + +if [ "JAVA" == "$JAVA" ] ; then + pushd qpid-${VER}/java + ant build release release-bin -Dsvnversion.output=${REV} + popd + + cp qpid-${VER}/java/release/*.tar.gz artifacts/qpid-java-${VER}.tar.gz + cp qpid-${VER}/java/broker/release/*.tar.gz artifacts/qpid-java-broker-${VER}.tar.gz + cp qpid-${VER}/java/client/release/*.tar.gz artifacts/qpid-java-client-${VER}.tar.gz + #cp qpid-${VER}/java/client/example/release/*.tar.gz + cp qpid-${VER}/java/management/eclipse-plugin/release/*.tar.gz qpid-${VER}/java/management/eclipse-plugin/release/*.zip artifacts/ + cp qpid-${VER}/java/management/client/release/*.tar.gz artifacts/qpid-management-client-${VER}.tar.gz +fi + +if [ "DOTNET" == "$DOTNET" ] ; then + pushd qpid-${VER}/dotnet + cd Qpid.Common + ant + cd .. + ./build-nant-release mono-2.0 + + cd client-010/gentool + ant + cd .. + nant -t:mono-2.0 release-pkg + popd + + cp qpid-${VER}/dotnet/bin/mono-2.0/release/*.zip artifacts/qpid-dotnet-0-8-${VER}.zip + cp qpid-${VER}/dotnet/client-010/bin/mono-2.0/debug/*.zip artifacts/qpid-dotnet-0-10-${VER}.zip +fi + +if [ "SIGN" == "$SIGN" ] ; then + pushd artifacts + sha1sum *.zip *.gz *.svnversion > SHA1SUM + if [ ! -z $SIGNING_KEY ] ; then + KEYOPTION="--default-key $SIGNING_KEY" + fi + for i in `find . | egrep 'jar$|pom$|gz$|zip$|svnversion$|SHA1SUM'`; do gpg --sign --armor --detach $KEYOPTION $i; done; + popd +fi + +if [ "UPLOAD" == "$UPLOAD" ] ; then + scp -r artifacts people.apache.org:qpid-${VER} +fi diff --git a/trunk/qpid/bin/set_svn_properties.sh b/trunk/qpid/bin/set_svn_properties.sh new file mode 100755 index 0000000000..cc29490eea --- /dev/null +++ b/trunk/qpid/bin/set_svn_properties.sh @@ -0,0 +1,133 @@ +# +# +# 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 script will set the proper svn properties on all the files in the tree. +# It pretty much requires a gnu compatible xargs (for the -r flag). Running +# on Linux is probably the best option, or gnuxargs is available for OS X from +# darwinports. + + +find . -name "*.java" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.java" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "*.py" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native + +find . -name "*.rb" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native + +find . -name "*.xml" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/xml +find . -name "*.xml" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.xml" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "*.xsl" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/xml +find . -name "*.xsl" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.xsl" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "*.xsd" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/xml +find . -name "*.xsd" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.xsd" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "*.wsdl" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/xml +find . -name "*.wsdl" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.wsdl" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "*.properties" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain +find . -name "*.properties" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.properties" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "*.txt" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.txt" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain + +find . -name "*.htm*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.htm*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/html +find . -name "*.htm*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "README*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "README*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain + +find . -name "LICENSE*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "LICENSE*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain + +find . -name "NOTICE*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "NOTICE*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain + +find . -name "TODO*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "TODO*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain + +find . -name "KEYS*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "KEYS*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain + +find . -name "*.png" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type image/png +find . -name "*.gif" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type image/gif +find . -name "*.jpg" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type image/jpeg +find . -name "*.jpeg" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type image/jpeg + + +find . -name "*.scdl" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.scdl" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/xml + +find . -name "*.fragment" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.fragment" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/xml + +find . -name "*.componentType" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.componentType" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/xml + +find . -name "*.wsdd" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/xml +find . -name "*.wsdd" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native + +find . -name "sca.subsystem" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/xml +find . -name "sca.subsystem" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "Tuscany-model.config" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/xml +find . -name "Tuscany-model.config" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native + + + +find . -name "*.cpp" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.cpp" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "*.c" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.c" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "*.h" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.h" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "*.am" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.am" | grep -v ".svn" | xargs -n 1 -r svn propset svn:keywords "Rev Date" + +find . -name "ChangeLog*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "ChangeLog*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain + +find . -name "*.sh" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.sh" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain +find . -name "*.sh" | grep -v ".svn" | xargs -n 1 -r svn propset svn:executable "" + +find . -name "*.bat" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style CRLF +find . -name "*.bat" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain + +find . -name "*.cmd" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "*.cmd" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain +find . -name "*.cmd" | grep -v ".svn" | xargs -n 1 -r svn propset svn:executable "" + +find . -name "INSTALL*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "INSTALL*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain +find . -name "COPYING*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "COPYING*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain +find . -name "NEWS*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:eol-style native +find . -name "NEWS*" | grep -v ".svn" | xargs -n 1 -r svn propset svn:mime-type text/plain + diff --git a/trunk/qpid/buildtools/LICENSE b/trunk/qpid/buildtools/LICENSE new file mode 100644 index 0000000000..bc46b77047 --- /dev/null +++ b/trunk/qpid/buildtools/LICENSE @@ -0,0 +1,206 @@ +========================================================================= +== Apache License == +========================================================================= + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + diff --git a/trunk/qpid/buildtools/NOTICE b/trunk/qpid/buildtools/NOTICE new file mode 100644 index 0000000000..5813a7a09a --- /dev/null +++ b/trunk/qpid/buildtools/NOTICE @@ -0,0 +1,8 @@ +// ------------------------------------------------------------------ +// NOTICE file corresponding to the section 4d of The Apache License, +// Version 2.0, in this case for Qpid buildTools +// ------------------------------------------------------------------ + +Apache Qpid +Copyright 2006-2008 Apache Software Foundation + diff --git a/trunk/qpid/buildtools/buildCreator/build.config b/trunk/qpid/buildtools/buildCreator/build.config new file mode 100644 index 0000000000..cb45e99a6e --- /dev/null +++ b/trunk/qpid/buildtools/buildCreator/build.config @@ -0,0 +1,37 @@ + + + + M4.0-beta + + + + + qpid + svn + https://svn.eu.apache.org/repos/asf/incubator/qpid/trunk/qpid/ + + + + + qpid.build + + diff --git a/trunk/qpid/buildtools/buildCreator/buildCreator.py b/trunk/qpid/buildtools/buildCreator/buildCreator.py new file mode 100755 index 0000000000..4df7553dea --- /dev/null +++ b/trunk/qpid/buildtools/buildCreator/buildCreator.py @@ -0,0 +1,1464 @@ +#!/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 os +import re +import datetime +import urllib +import sys +import string + +from xml.dom import minidom +from optparse import OptionParser + +if map(int, string.split(string.split(sys.version)[0], ".")) < [2, 4, 0]: + print ("subprocess is required for this tool and is not present in versions prior to 2.4.0") + try: + import subprocess + except ImportError: + print ("subprocess module not found please install it locally or upgrade your python version") + sys.exit(1) + +import subprocess +from subprocess import Popen + +TOOL_NAME="buildCreator.py" + +#Default Build script +DEFAULT_BUILD="build.config" + +# Path locations +DEFAULT_ROOTDIR="builder" +SOURCE_DIR="src" +PATCH_DIR="patch" +BUILD_DIR="build" +RELEASE_DIR="release" + +# Command Binaries +SVN='svn' +SVN_BIN='svn' +HTTP='http' +FTP='ftp' +WGET_BIN='wget' +FILE='file' +CP_BIN='cp' +PATCH_BIN='patch' +FILE_BIN='file' +LS_BIN='ls' +TAR_BIN='tar' +BZIP2_BIN='bzip2' +UNZIP_BIN='unzip' +ECHO_BIN='echo' +SVNVERSION_BIN='svnversion' + + + +GZIP_DATA='gzip compressed data' +BZIP2_DATA='bzip2 compressed data' +ZIP_DATA='Zip archive data' +TAR_DATA='POSIX tar archive' +DIFF_FILE="'diff' output text" + +#Build Targets +DISTCLEAN='distclean' +CLEAN='clean' +RETRIEVE='retrieve' +PREPARE='prepare' +PATCH='patch' +SHOWBUILDS='showbuilds' +BUILD='build' +RELEASE='release' +FULL='full' +HELP='help' +DEFAULT_TARGET=FULL + +# XML Elements toplevel +BUILDER="builder" +ENVIRONMENT="environment" +SOURCES="sources" +SOURCE="source" +PATCHES="patches" +PATCH="patch" +BUILDS="builds" +INCLUDE="include" +DEPENDENCY='dependency' +TARGETS='targets' +SCRIPT='script' + +# XML Elements - Source/Patch elements +NAME="name" +TYPE="type" +URL="url" +REVISION="revision" +ROOTDIR="root" +VERSION="version" +PREFIX='prefix' +PATH='path' + +PATH_SEP=os.sep + +_source=None +_target=DEFAULT_BUILD +_log = True +_verbose = False +_debug = False +_ignoreErrors = False + +_charIndex = 0 +_waitingChars = ['-', '/' , '|', '\\'] + +def showUsage(): + print TOOL_NAME+" [-c|--configure ] [-v| --verbose] [-q|--quiet] [-i|--ignore-errors] [] [options]" + print "Available Targets:" + print " distclean [source] - Remove all or specified retrieved source" + print " clean [source] - Remove all or specified source build directory" + print " retrieve [source] - Retrieve all or specified source" + print " prepare [source] - Prepare all or specified source : i.e. extract archives" + print " patch [source] - Patch all or specified source" + print " showbuilds - List all builds" + print " build [build] - Perform the build scripts for all or specified build" + print " release [build] - Perform the release scripts for all or specified source" + print " full - Perfrom clean, retrieve, prepare, patch, build, release for all builds (DEFAULT)" + +def main(): + global _log, _verbose, _debug, _rootDir, _target, _source, _baseConfiguration, _ignoreErrors + + # Load the + parser = OptionParser() + parser.add_option("-c", "--config", dest="config", + action="store", default=DEFAULT_BUILD, + help="set configuration file : default = " + DEFAULT_BUILD) + + parser.add_option("-v", "--verbose", dest="verbose", + action="store_true", default=False, help="enable verbose output") + + parser.add_option("-d", "--debug", dest="debug", + action="store_true", default=False, help="enable debug output") + + parser.add_option("-q", "--quiet", dest="quiet", + action="store_false", default=True, help="Enable quiet ouptut") + + parser.add_option("-i", "--ignore-errors", dest="ignoreErrors", + action="store_true", default=False, help="Ignore errors") + + + (options, args) = parser.parse_args() + + _verbose = options.verbose + _debug = options.debug + _log = options.quiet + _ignoreErrors = options.ignoreErrors + + log("Logging Enabled") + verbose("Verbose Output Enabled") + debug("Debug Enabled") + + if (len(args) > 2): + showUsage() + sys.exit(1) + else: + # NOTE : Would be good to be able to do builder.py clean build release + if (len(args) > 0 ): + # Override the default target + _target = checkTarget(args[0]) + # limit the comand to just the specified source + if (len(args) > 1 ): + _source = args[1] + else: + _source = None + else: + _target = FULL + + + _baseConfiguration = loadBaseConfiguration(options.config) + + debug ("Loading Environment") + prepareEnvironment(_baseConfiguration.getElementsByTagName(ENVIRONMENT)[0]) + + if _target == DISTCLEAN: + distclean() + + if _target == CLEAN or _target == FULL: + clean() + + if _target == RETRIEVE or _target == FULL: + try: + retrieve() + except KeyboardInterrupt: + log ("User Interrupted preparation") + sys.exit(0) + + if _target == PREPARE or _target == FULL: + prepare() + + if _target == PATCH or _target == FULL: + patch() + + if _target == SHOWBUILDS: + showBuilds() + + if _target == BUILD or _target == FULL: + build() + + if _target == RELEASE or _target == FULL: + release() + + log("Complete") + +def checkTarget(target): + + if target == HELP: + showUsage() + sys.exit(0) + + if target == DISTCLEAN: + return DISTCLEAN + + if target == CLEAN: + return CLEAN + + if target == RETRIEVE: + return RETRIEVE + + if target == PREPARE: + return PREPARE + + if target == PATCH: + return PATCH + + if target == SHOWBUILDS: + return SHOWBUILDS + + if target == BUILD: + return BUILD + + if target == RELEASE: + return RELEASE + + if target == FULL: + return FULL + + warn("Target: '"+target+"' not valid") + showUsage() + sys.exit(1) + + +################################################################################ +# +# Environment +# +################################################################################ +def prepareEnvironment(env): + global _rootDir + + rootdir = env.getElementsByTagName(ROOTDIR) + if (rootdir.length > 0): + _rootDir = getValue(rootdir[0]) + else: + verbose ("Using default build dir: "+DEFAULT_ROOTDIR) + _rootDir = os.getcwd() + PATH_SEP + DEFAULT_ROOTDIR + + if _rootDir == "": + verbose (ROOTDIR+" value is empty. Please specify a value for "+ ROOTDIR) + attemptExit(0) + + if (os.path.exists(_rootDir)): + verbose ("Using Existing root dir: "+_rootDir) + else: + mkdir(_rootDir) + +################################################################################ +# +# Clean Methods +# +################################################################################ +def clean(): + global _source + sources = getSourceList() + + if len(sources) > 0: + log ("Removing built code...") + performed = False + for source in sources: + if _source != None: + if getName(source) == _source: + performed = True + removeDir(source, BUILD_DIR) + else: + removeDir(source, BUILD_DIR) + + if _source == None: + deleteDir(_rootDir + PATH_SEP + BUILD_DIR) + + builds = getBuildList() + if len(builds) > 0: + log ("Removing built releases...") + for build in builds: + if _source != None: + if getName(build) == _source: + performed = True + removeDir(build, RELEASE_DIR) + else: + removeDir(build, RELEASE_DIR) + if _source == None: + deleteDir(_rootDir + PATH_SEP + RELEASE_DIR) + + if _source != None: + if not performed: + fatal("No such source:" + _source); + + + +def distclean(): + sources = getSourceList() + + if len(sources) > 0: + log ("Removing source...") + for source in sources: + if _source != None: + if getName(source) == _source: + performed = True + removeDir(source, SOURCE_DIR) + else: + removeDir(source, SOURCE_DIR) + + if _source == None: + deleteDir(_rootDir + PATH_SEP + SOURCE_DIR) + + log ("Removing built code...") + for source in sources: + if _source != None: + if getName(source) == _source: + performed = True + removeDir(source, BUILD_DIR) + else: + removeDir(source, BUILD_DIR) + if _source == None: + deleteDir(_rootDir + PATH_SEP + BUILD_DIR) + + patches =getPatchList() + if len(patches) > 0: + log ("Removing patches...") + for patch in patches: + if _source != None: + if getName(patch) == _source: + performed = True + removeDir(patch, PATCH_DIR) + else: + removeDir(patch, PATCH_DIR) + if _source == None: + deleteDir(_rootDir + PATH_SEP + PATCH_DIR) + + + builds = getBuildList() + if len(builds) > 0: + log ("Removing built releases...") + for build in builds: + if _source != None: + if getName(build) == _source: + performed = True + removeDir(build, RELEASE_DIR) + else: + removeDir(build, RELEASE_DIR) + if _source == None: + deleteDir(_rootDir + PATH_SEP + RELEASE_DIR) + + + if _source == None: + deleteDir(_rootDir) + + if _source != None: + if not performed: + fatal("No such source:" + _source); + + + +def removeDir(source, rootdir): + name = getName(source) + deleteDir(_rootDir + PATH_SEP + rootdir + PATH_SEP + name) + +################################################################################ +# +# Retrieve Methods +# +################################################################################ +def retrieve(): + global _source + sources = getSourceList() + + # Retreive Source + performed=False + if len(sources) > 0: + log ("Retrieving source...") + + mkdir(_rootDir + PATH_SEP + SOURCE_DIR) + + for source in sources: + if _source != None: + if getName(source) == _source: + performed = True + downloadSource(source, SOURCE_DIR) + else: + downloadSource(source, SOURCE_DIR) + + # Retreive Patches + patches = getPatchList() + if len(patches) > 0: + + log ("Retrieving patches...") + + mkdir(_rootDir + PATH_SEP + PATCH_DIR) + + for patch in patches: + if _source != None: + if getName(patch) == _source: + performed = True + downloadSource(patch, PATCH_DIR) + else: + downloadSource(patch, PATCH_DIR) + + if _source != None: + if not performed: + fatal("No such patch:" + _source); + + +################################################################################ +# +# Prepare Methods +# +################################################################################ + +def prepare(): + verbose("Prepare") + + mkdir(_rootDir + PATH_SEP + BUILD_DIR) + + sources = getSourceList() + performed = False + if len(sources) > 0: + log ("Preparing source...") + for source in sources: + if _source != None: + if getName(source) == _source: + log_no_newline("Preparing "+getName(source)+": ") + performed = True + postProcess(source, SOURCE_DIR) + else: + log_no_newline("Preparing "+getName(source)+": ") + postProcess(source, SOURCE_DIR) + if _source != None: + if not performed: + fatal("No such source:" + _source); + + patches = getPatchList() + if len(patches) > 0: + log ("Preparing patches...") + for patch in patches: + if _source != None: + if getName(patch) == _source: + performed = True + log("Preparing "+getName(patch)) + postProcess(patch, PATCH_DIR) + else: + log("Preparing "+getName(patch)) + postProcess(patch, PATCH_DIR) + + if _source != None: + if not performed: + fatal("No such patch:" + _source); + + +def postProcess(item, destination): + name = getName(item) + type = getType(item) + + verbose("Post Processing:"+name) + + targetdir = _rootDir + PATH_SEP + destination + PATH_SEP + name + + builddir = _rootDir + PATH_SEP + BUILD_DIR + PATH_SEP + name + + + if type == SVN: + # Do we want to perform an export? + + #extractcommand=SVN_BIN+" export "+ targetdir +" "+ builddir + # Use -v just now so we can show progress + extractcommand=CP_BIN+" -rvf "+ targetdir +" "+ builddir + + runCommand(extractcommand, False) + + else: + if type == FILE or type == HTTP or type == FTP: + + mkdir(builddir) + + # Look at all the files and see if they need unpacks + for root, dirs, files in os.walk(targetdir, topdown=False): + for file in files: + command = FILE_BIN+" "+root+PATH_SEP+file + + result = Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + line = result.stdout.readline() + firstline=line + while (line != "" ): + # process nextline + line=result.stdout.readline() + + result.wait() + + if result.returncode != 0: + fatal("Download (" + name + ") contained unrecognized file type:"+ firstline) + + + extractcommand="" + + if firstline.find(GZIP_DATA) != -1: + extractcommand=TAR_BIN+" -vxzf "+root+PATH_SEP+file+" -C " + builddir + + if firstline.find(BZIP2_DATA) != -1: + extractcommand=TAR_BIN+" -vxjf "+root+PATH_SEP+file+" -C " + builddir + + if firstline.find(ZIP_DATA) != -1: + extractcommand=ZIP_BIN+" -v "+root+PATH_SEP+file+" -d "+ builddir + + if firstline.find(TAR_DATA) != -1: + extractcommand=TAR_BIN+" -vxf "+root+PATH_SEP+file+" -C "+ builddir + + if firstline.find(DIFF_FILE) != -1 or firstline.find("text"): + extractcommand=CP_BIN+" -r "+root+PATH_SEP+file+" "+ builddir + + + + if not extractcommand=="": + log_no_newline("Extracting archive:" + file+": " ) + runCommand(extractcommand, False) + else: + fatal("Download (" + name + ") contained unsupported file type:"+ firstline) + + + +################################################################################ +# +# Patch Methods +# +################################################################################ +def patch(): + + # Retreive Patches + patches= getPatchList() + if len(patches) > 0: + performed = False + for patch in patches: + if _source != None: + if getName(source) == _source: + performed = True + applyPatch(patch) + else: + applyPatch(patch) + + if _source != None: + if not performed: + fatal("No such patch:" + _source); + + +def applyPatch(patch): + global _rootDir + + name = getName(patch) + type = getType(patch) + source = getValue(patch.getElementsByTagName(SOURCE)[0]) + if (patch.getElementsByTagName(PREFIX).length > 0): + prefix = getValue(patch.getElementsByTagName(PREFIX)[0]) + else: + prefix = None + + if (patch.getElementsByTagName(PATH).length > 0): + path= getValue(patch.getElementsByTagName(PATH)[0]) + else: + path = None + + + basecommand = PATCH_BIN + + if prefix != None: + basecommand = basecommand + " -p "+prefix + + basecommand = basecommand + " -E -d "+ _rootDir + PATH_SEP + BUILD_DIR + PATH_SEP + source + PATH_SEP + + if path != None: + basecommand = basecommand + path + + basecommand = basecommand + " < " + + patchSource= _rootDir + PATH_SEP + PATCH_DIR + PATH_SEP + name + + for root, dirs, files in os.walk(patchSource): + if '.svn' in dirs: + dirs.remove('.svn') + files.sort() + for patchName in files: + log("Applying patch '" + name + "'("+patchName+") to " + source) + runCommandShowError(basecommand + patchSource + PATH_SEP + patchName) + + +################################################################################ +# +# build Methods +# +################################################################################ +def showBuilds(): + builds = getNamesfromBuildList(getBuildList()) + if len(builds) > 0: + log("Available Builds:") + for build in builds: + log(" "+build) + else: + log("No builds available") + +# +# Given a list of build elements extract the Name values and return as a list +# +def getNamesfromBuildList(list): + names=[] + for item in list: + name = getName(item) + if name != None: + names.append(name) + return names + +def build(): + doBuildAction(BUILD) + + + +################################################################################ +# +# Release Methods +# +################################################################################ +def release(): + log ("Releasing...") + mkdir(_rootDir + PATH_SEP + RELEASE_DIR) + + builds = getBuildList() + + for build in builds: + if _source != None: + if getName(build) == _source: + mkdir(_rootDir + PATH_SEP + RELEASE_DIR + PATH_SEP + getName(build)) + else: + mkdir(_rootDir + PATH_SEP + RELEASE_DIR + PATH_SEP + getName(build)) + + doBuildAction(RELEASE) + + + +################################################################################ +# +# Build Helper Methods +# +################################################################################ + +def doBuildAction(action): + config = _baseConfiguration + + if len(getSourceList()) > 0: + log("Performing "+ action.title() +"...") + + builds = getBuildList() + + performed = False + for build in builds: + if _source != None: + if getName(build) == _source: + performed = True + performScript(build , action) + else: + performScript(build, action) + + if _source != None: + if not performed: + fatal("No such build:" + _source); + + +def performScript(build, scriptName): + name = getName(build) + + checkDependencies(build) + + verbose("Running "+scriptName+":"+name) + + targets = build.getElementsByTagName(TARGETS) + + if targets.length > 0: + target = targets[0].getElementsByTagName(scriptName) + + if target.length > 1: + fatal("More than one build target specified") + + if target.length == 0: + fatal("No build target specified") + + script = getValue(target[0].getElementsByTagName(SCRIPT)[0]) + + script = peformSubstitutionsInScript(build, script) + + runScript(script) + + else: + fatal("Build "+name+" has no build targets") + + +def checkDependencies(build): + name = getName(build) + dependencies = build.getElementsByTagName(DEPENDENCY) + + if dependencies > 0: + for dependency in dependencies : + sources = dependency.getElementsByTagName(SOURCE) + if sources.length == 0: + fatal("No sources specified in dependency block for build:"+name) + else: + for source in sources: + sourceDependency = getValue(source) + if not (sourceDefined(sourceDependency)): + fatal("Unable to build "+name+" as specifed dependency("+sourceDependency +") is not available") + +def sourceDefined(name): + for source in getSourceList(): + sourcename = getValue(source.getElementsByTagName(NAME)[0]) + if sourcename == name: + return True + return False + + +def runScript(script): + (returncode, stdout, stderr) = runCommandWithOutput(script) + + if returncode != 0: + for line in stdout: + warn(line) + for line in stderr: + warn(line) + + warn("Script Failed") + + attemptExit(1) + + +################################################################################ +# +# XML Helper Methods +# +################################################################################ + +def loadBaseConfiguration(config): + log ("Loading configuration:" + config) + full = minidom.parse(config) + return full.getElementsByTagName(BUILDER)[0] + +# +# Assumes that we have a text element and returns the text value. +# +def getValue(node): + if node.childNodes.length > 0: + return node.childNodes[0].data + else: + return "" + +def getEnvironment(): + env = _baseConfiguration.getElementsByTagName(ENVIRONMENT) + if env.length > 0: + return env[0] + else: + return None + +# +# Returns the value of the NAME element contained in the specified item +# +def getName(item): + name = item.getElementsByTagName(NAME) + if name.length > 0: + return getValue(name[0]) + +# +# Returns the value of the TYPE element contained in the specified item +# +def getType(item): + type = item.getElementsByTagName(TYPE) + if type.length > 0: + return getValue(type[0]) + +# +# Returns the value of the URL element contained in the specified item +# +def getURL(item): + url = item.getElementsByTagName(URL) + if url.length > 0: + return getValue(url[0]) + +# +# Return the list of sources in this build configuration +# If no sources are available then this is logged as a fatal error. +# +def getSourceList(): + config = _baseConfiguration + sourceCount = config.getElementsByTagName(SOURCES).length + if sourceCount > 0: + return config.getElementsByTagName(SOURCES)[0].getElementsByTagName(SOURCE) + else: + fatal("No source elements defined.") +# +# Return the list of patches in this build configuration +# +def getPatchList(): + config = _baseConfiguration + patchCount = config.getElementsByTagName(PATCHES).length + if patchCount > 0: + return config.getElementsByTagName(PATCHES)[0].getElementsByTagName(PATCH) + else: + return [] + +# Returns a list of build elements including any any included build files +# Currently nested build elements are not supported so all builds must be specified via the tag. +# +def getBuildList(): + config = _baseConfiguration + + builds = config.getElementsByTagName(BUILDS) + buildcount = builds.length + + if buildcount > 0: + build = builds[0] + useInclude = build.getElementsByTagName(INCLUDE).length > 0 + + # If we are using includes then build a list of all the files we need to include + if useInclude: + return getIncludeList(build) + + else: + warn("Nested builds not currently supported") + else: + fatal("No Builds defined in config") + +# +# Look at all values in the given element and return the list of inlcudes +# +def getIncludeList(build): + includelist=[] + for include in build.getElementsByTagName(INCLUDE): + for item in getIncludeValue(getValue(include)): + includelist.append(item) + + return includelist + +# +# Process in the given include value. +# This is done by performing `ls ` +# This means includes such as 'builds/*.config' will match multiple includes and return all entries +# +# Any error in performing the ls is printed and the tool exits (unless ignore errors) +# +def getIncludeValue(include): + debug("Loading Includes:"+include+" ") + + command = LS_BIN+" "+include + (returncode, stdout, stderr) = runCommandWithOutput(command) + + if returncode == 0: + values=[] + for line in stdout: + include = loadIncludeFile(line) + if not include == None: + values.append(include) + return values + else: + for line in stderr: + warn(line) + attemptExit(1) + +# +# Given a file name parse the XML. Any trailing '\n's that the ls command may have added are removed here. +# The file is checked to ensure that it is a file +# The first element is returned. +# +# TODO: Allow multiple builds per file. +# +def loadIncludeFile(file): + buildFile = minidom.parse(file.rstrip('\n')) + + builds = buildFile.getElementsByTagName(BUILDS) + + if builds.length != 1: + warn("Build Configuration does not contain any <"+BUILDS+"> definitions") + else: + buildElements = builds[0].getElementsByTagName(BUILD) + if not buildElements.length > 0: + warn("Build Configuration does not contain any <"+BUILD+"> definitions") + else: + if buildElements.length > 0: + build = buildElements[0] + # getElementsByTagName is recursive so this will pick up the sub element build + # Only use the first element + namecount = build.getElementsByTagName(NAME).length + if namecount > 0: + return build + else: + return None + +# +# Given the build target and a script substitute $value entries in script for values in +# the Environment +# the Source entries +# the build +# the release location : _rootDir + PATH_SEP + RELEASE_DIR + PATH_SEP + buildName +# +def peformSubstitutionsInScript(build, script): + buildName = getName(build) + sources = getSourceList() + + #Replace Build name + script = script.replace("$build", buildName) + + #Replace release directory + releaseDir = _rootDir + PATH_SEP + RELEASE_DIR + PATH_SEP + buildName + script = script.replace("$release", releaseDir) + + # Replace Source varables + for source in sources: + sourceName = getName(source) + + search = "$"+sourceName + + sourcePath = source.getElementsByTagName(PATH) + + replacement = _rootDir + PATH_SEP + BUILD_DIR + PATH_SEP + sourceName + if sourcePath.length > 0: + replacement = replacement + PATH_SEP + getValue(sourcePath[0]) + + script = script.replace(search,replacement) + + # Take values from the environment script for replacement + env = getEnvironment() + if env != None: + for item in env.childNodes: + if item.nodeType == 1: + + search = "$"+item.tagName + replace = item.childNodes[0].data + + script = script.replace(search,replace) + + # Perform keyword substitution replacements + # Currently only one substitution exists so for simplisity fix it here + writeVersionSubstitution = script.find("$writeVersions") + if writeVersionSubstitution != -1: + + #Extract Filename + fileNameStart = script.find("(",writeVersionSubstitution) + fileNameEnd = script.find(")",fileNameStart) + fileName= script[fileNameStart+1:fileNameEnd] + + substitution = createVersionSubstitution(build, fileName) + + script = script.replace("$writeVersions(" + fileName + ")", substitution) + + + return script + +################################################################################ +# +# Keyword Substitutions +# +################################################################################ + +# +# Use the specified build as to lookup all associated source/patches and write out their details +# to the specified file using shell redirects. redirects are to be used as the absolute filename +# location may not be known as the name comes in via the release script +# +def createVersionSubstitution(build, filename): + substitution = "" + sources = getSourceList(); + + dependencies = build.getElementsByTagName(DEPENDENCY) + + if dependencies > 0: + substitution += "\n echo 'Source Version Information:'>> " + filename + for dependency in dependencies : + depSources = dependency.getElementsByTagName(SOURCE) + # Can assume we have dependencies as we would have failed before now + for source in depSources: + sourceDependency = getValue(source) + # We can assume source is valid. + for s in sources: + if sourceDependency == getName(s): + # provide header :: + substitution += "\n " + ECHO_BIN + " -n '" + sourceDependency + ":" \ + + getType(s) + ":' >> " + filename + substitution += "\n" + getVersionCommand(s) + " >>" + filename + # Add Source URL to Revisions file + url = getValue(s.getElementsByTagName(URL)[0]) + substitution += "\n" + ECHO_BIN + " \"URL:" + url + "\" >> "+filename + # Add Patches applied to this source to revisions file + substitution += addPatchVersions(s, filename) + + return substitution + +# +# Use the specified source as to lookup all associated patches and write their details out the +# the specified file using shell redirects. redirects are to be used as the absolute filename +# location may not be known as the name comes in via the release script +# +def addPatchVersions(source, filename): + substitution = "" + + patches = getPatchList() + + sourceName = getName(source) + + for patch in patches: + patchSourceName = getValue(patch.getElementsByTagName(SOURCE)[0]) + + if sourceName == patchSourceName: + type = getType(patch) + substitution += "\n" + ECHO_BIN + " \"\t"+getName(patch)+":"+type + "\" >> "+filename + url = getValue(patch.getElementsByTagName(URL)[0]) + substitution += "\n" + ECHO_BIN + " \"\t\tURL:" + url + "\" >> "+filename + if (type == SVN): + if (patch.getElementsByTagName(REVISION).length > 0): + substitution += "\n" + ECHO_BIN + " \"\t\tREVISION:"+ \ + getValue(patch.getElementsByTagName(REVISION)[0]) + "\" >> " + filename + else: + substitution += "\n" + ECHO_BIN + " -n \"\t\tREVISION: \" >> " + filename + substitution += "\n" + SVNVERSION_BIN + " " + _rootDir + PATH_SEP + PATCH_DIR + PATH_SEP + getName(patch) + " >> " + filename + + + if (patch.getElementsByTagName(PREFIX).length > 0): + substitution += "\n" + ECHO_BIN + " \"\t\tPREFIX: " + \ + getValue(patch.getElementsByTagName(PREFIX)[0]) + "\" >> " + filename + + if (patch.getElementsByTagName(PATH).length > 0): + substitution += "\n" + ECHO_BIN + " \"\t\tPATH: " + \ + getValue(patch.getElementsByTagName(PATH)[0]) + "\" >> " + filename + + global _rootDir + patchSource= _rootDir + PATH_SEP + PATCH_DIR + PATH_SEP + getName(patch) + + # + # Include the list of patches files applied + # + for root, dirs, files in os.walk(patchSource): + if '.svn' in dirs: + dirs.remove('.svn') + files.sort() + for patchName in files: + substitution += "\n" + ECHO_BIN + " \"\t\tFILE: " + patchName + "\" >> " + filename + + + + + if (substitution != ""): + return "\n" + ECHO_BIN + " \"\tPatches applied to " + sourceName + ":\" >> " + filename + substitution + else: + return "\n" + ECHO_BIN + " \"\tNo Patches\" >> " + filename + + +# +# Given a source entry return the command that will provide the current version +# of that source. +# i.e. svn source : svnversion +# http source : echo +# +def getVersionCommand(source): + global _rootDir + type = getType(source) + + versionCommand="" + + if type == SVN: + versionCommand=SVNVERSION_BIN+" "+_rootDir + PATH_SEP + SOURCE_DIR + PATH_SEP + getName(source) + else: + if type == FILE or type == HTTP or type == FTP: + versionCommand = ECHO_BIN +" " + getURL(source) + + + return versionCommand + +################################################################################ +# +# Download Helper Methods +# +################################################################################ + +# +# Download the item specified in source to the given destintation +# +def downloadSource(source, destination): + name = getName(source) + type = getType(source) + url = getValue(source.getElementsByTagName(URL)[0]) + log ( "Retrieving "+ name + "("+ type +")") + + targetdir=_rootDir + PATH_SEP + destination + PATH_SEP + name + + command = "" + + mkdir(targetdir) + + if (os.listdir(targetdir)==[]): + + # Setup command for a fresh checkout + if (type == SVN): + command = SVN_BIN+" co "+url+" "+targetdir + if (source.getElementsByTagName(REVISION).length > 0): + revision = getValue(source.getElementsByTagName(REVISION)[0]) + command = SVN_BIN+" co -r"+revision+" "+url+" "+targetdir + else: + if (type == HTTP): + command = WGET_BIN+" --no-directories -P "+targetdir+" "+url + else: + if (type == FILE): + if url.startswith(HTTP): + command = WGET_BIN+" -P "+targetdir+" "+url + else: + if url.startswith(FTP): + command = WGET_BIN+" -P "+targetdir+" "+url + else: + command = CP_BIN+" "+url+" "+targetdir + else: + warn("Target directory(" + targetdir + ") is not empty please ensure contents are valid or run 'clean "+name+"'") + + verbose("Executing:"+command) + log_no_newline("Retrieving "+source.nodeName+": ") + + if (type == FILE): + runCommand(command, True) + else: + runCommand(command, False) + +################################################################################ +# +# Command Helper Methods +# +################################################################################ + +# +# Run command and print out last 20 lines of data on error +# +def runCommandShowError(command): + last20 = runCommand(command, False) + if last20 != None: + lines=last20[0] + lines=lines + 1 + current = 1 + while current != lines: + log (last20[current]) + current = current + 1 + attemptExit(1) + +# +# Runs the given command if showOutput is true then stdout/stderr is shown on screen +# other wise the last 20 lines of output is gathered: +# +# As command runs progress is shown +# +# return array [0] = no of elements in array. Array is fixed size 21 elements but not all are used. FIXME: this is poor +# +# TODO: Current mechanism for limiting to 20 lines is poor, potential to replace usages of this +# method with runCommandWithOutput below +# +def runCommand(command, showOutput): + debug("Running Command:"+command) + try: + if showOutput: + # Process that shows the output + result = Popen(command, shell=True) + else: + # consume the output ourselves + result = Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + + index=0 + last20=[""] * 21 + line = result.stdout.readline() + while (line != "" ): + logWaiting() + + #Record last 20 lines of output + index = index + 1 + if index == 20: + index = 1 + + last20[index]=line + + # process nextline + line = result.stdout.readline() + + # + # If we didn't get any standard or fill our buffers then fill the end of the buffer with any stderr + # + if index == 0 | index < 15 : + line = result.stderr.readline() + + if index != 0: + index = index + 1 + if line != "": + last20[index]="STDERR" + reset = index + while (line != "" ): + logWaiting() + + #Record last 20 lines of output + index = index + 1 + if index == 20: + index = reset + + last20[index]=line + + # process nextline + line = result.stderr.readline() + + result.wait() + + if result.returncode == 0: + logWaitingDone() + else: + logWaitingFailed("Failed") + attemptExit(1) + if not showOutput: + last20[0]=index + return last20 + + return None + + except IOError: + logWaitingFailed ("Error running command.") + attemptExit(1) + +# +# Runs the given command if showOutput is true then stdout/stderr is shown on screen +# Stdout and stderr is gathered up and returned with error code. +# +# return (result.returncode, stdout, stderr) +# +# As command runs progress is shown +# +def runCommandWithOutput(command): + + result = Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + + + # Retrieve STDOUT + stdout=[] + line = result.stdout.readline() + while (line != "" ): + logWaiting() + + stdout.append(line) + + # process nextline + line = result.stdout.readline() + + line = result.stderr.readline() + + # Retrieve STDERR + stderr=[] + while (line != "" ): + stderr.append(line) + + # process nextline + line = result.stderr.readline() + + result.wait() + + logWaitingClear() + + return (result.returncode, stdout, stderr) + + +################################################################################ +# +# OS Helper Methods +# +################################################################################ + +# +# Check _ignoreErrors value and exit if false +# +def attemptExit(code): + if not _ignoreErrors: + sys.exit(code) + else: + print ("Ignoring Errors") + +# +# Check that the required binaries are present for this tool. +# Only checks the minimum set. +# Logs warning if archive tools are missing +# +def checkSystemRequirements(): + exists = checkExists(SVN_BIN) + exists = exists & checkExists(WGET_BIN) + exists = exists & checkExists(CP_BIN) + exists = exists & checkExists(PATCH_BIN) + exists = exists & checkExists(FILE_BIN) + + if not checkExists(TAR_BIN): + warn("Unable to process tar files as tar binary does not exist:" + TAR_BIN) + if not checkExists(BZIP2_BIN): + warn("Unable to process bzip2 files as bzip2 binary does not exist:" + BZIP2_BIN) + if not checkExists(UNZIP_BIN): + warn("Unable to process zip files as unzip binary does not exist:" + UNZIP_BIN) + + if not exists: + sys.exit(1) + +# +# Helper that checks for files existence +# +def checkExists(command): + debug_no_newline("Checking for "+command+":") + command = LS_BIN+" "+command + + result = Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + line = result.stdout.readline() + + while (line != "" ): + # process nextline + line = result.stdout.readline() + + result.wait() + + if result.returncode == 0: + debug("OK") + return True + else: + debug("Missing") + warn("Missing dependancy:"+command) + return False + + +# Delete everything reachable from the directory named in 'top', +# assuming there are no symbolic links. +# +# If an attempt to delete '/' is performed this is logged as a fatal error +# +def deleteDir(top): + if top == '/': + fatal("Exiting as attempt to delete '/' occured.") + else: + if (os.path.exists(top)): + log_no_newline("Removing:"+top+". ") + for root, dirs, files in os.walk(top, topdown=False): + logWaiting() + for name in files: + os.remove(os.path.join(root, name)) + for name in dirs: + logWaiting() + os.rmdir(os.path.join(root, name)) + + logWaiting() + os.rmdir(top) + + logWaitingDone() + +def mkdir(dir): + if not os.path.exists(dir): + os.mkdir(dir) + + +################################################################################ +# +# Logging Helper Methods +# +################################################################################ + +# +# Provide a spinning -/|\ +# +def logWaiting(): + global _charIndex, _waitingChars + + _charIndex = (_charIndex + 1) % len(_waitingChars) + + log_no_newline('\b') + log_no_newline(_waitingChars[_charIndex]) + +# +# Clear the logWaiting symbol and end the line with ' Done' +# +def logWaitingDone(): + log_no_newline('\b') + log(" Done") + +# +# Clear the logWaiting symbol +# +def logWaitingClear(): + log_no_newline('\b') + +# +# Clear the logWaiting symbol and end line with messsage +# +def logWaitingFailed(message): + log_no_newline('\b') + log(" "+message) + +def debug(string): + if _debug: + log(string) + +def verbose(string): + if _verbose: + log(string) + +def log (string): + if _log: + print string + +def warn (string): + print string + +def fatal(string): + print string + attemptExit(1) + +def log_no_newline (string): + if _log: + sys.stdout.write(string) + sys.stdout.flush() + +def verbose_no_newline (string): + if _verbose: + sys.stdout.write(string) + sys.stdout.flush() + +def debug_no_newline (string): + if _debug: + sys.stdout.write(string) + sys.stdout.flush() + +if __name__ == "__main__": + main() diff --git a/trunk/qpid/buildtools/buildCreator/qpid.build b/trunk/qpid/buildtools/buildCreator/qpid.build new file mode 100644 index 0000000000..f55025dc8d --- /dev/null +++ b/trunk/qpid/buildtools/buildCreator/qpid.build @@ -0,0 +1,55 @@ + + + + qpid-build + + + qpid + + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/LICENSE b/trunk/qpid/cc/LICENSE new file mode 100644 index 0000000000..bc46b77047 --- /dev/null +++ b/trunk/qpid/cc/LICENSE @@ -0,0 +1,206 @@ +========================================================================= +== Apache License == +========================================================================= + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + diff --git a/trunk/qpid/cc/NOTICE b/trunk/qpid/cc/NOTICE new file mode 100644 index 0000000000..05f39ba176 --- /dev/null +++ b/trunk/qpid/cc/NOTICE @@ -0,0 +1,8 @@ +// ------------------------------------------------------------------ +// NOTICE file corresponding to the section 4d of The Apache License, +// Version 2.0, in this case for Qpid bin scripts +// ------------------------------------------------------------------ + +Apache Qpid +Copyright 2006-2008 Apache Software Foundation + diff --git a/trunk/qpid/cc/README b/trunk/qpid/cc/README new file mode 100644 index 0000000000..8d1286f6d7 --- /dev/null +++ b/trunk/qpid/cc/README @@ -0,0 +1,84 @@ +****************** +Prerequisites +****************** +Check out the source +see http://cwiki.apache.org/qpid/building.html + +****************** +Install CruiseControl +****************** + +Download CruiseControl from: http://cruisecontrol.sourceforge.net/ + + * Unzip the release to a directory, for example ~/cruisecontrol-bin-2.7.2 + * Check that the scripts cruisecontrol-bin-2.7.2/cruisecontrol.sh and cruisecontrol-bin-2.7.2/apache-ant-1.7.0/bin/ant have execution permission. + * Make sure your directory ~/.ant/lib contains the following jars: + o The ant jar files that can be found in cruisecontrol-bin-2.7.2/apache-ant-1.7.0/lib/ + o xalan-2.7.0.jar + +****************** +Set system variables +****************** + +Prior to use CruiseControl you'll need to set three system variables: +Variable Value +CC_HOME path to your qpid project, for example /home/foo/projects/qpid +CPPSTORE_HOME path to your C++ store, for example /home/foo/projects/bdbstore-cpp +NANT_HOME path to the nant directory -- only required for .net client -- + (nant can be downloaded from http://nant.sourceforge.net/) + +Edit the file CC_HOME/config.properties and set the properties so to match your system requirements. +Notes + * the cpp store can be checked out from: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp + * Only unix scrips are currently provided + * + + +****************** +Installing Mono +****************** +For building the .net client on a Linux platform you need to install Mono. +Mono website is: http://www.mono-project.com/Main_Page +Here are the instruction for a RHEL5 platform: + +Create the file "/etc/yum.repos.d/mono.repo" and add the following lines: + +[Mono] +name=Mono Stack (RHEL_5) +type=rpm-md +baseurl=http://download.opensuse.org/repositories/Mono/RHEL_5/ +gpgcheck=1 +gpgkey=http://download.opensuse.org/repositories/Mono/RHEL_5/repodata/repomd.xml.key +enabled=1 + +Enter the following command to install Mono: + +# yum install mono-complete + + +****************** +Running CruiseControl +****************** + +Run cruisecontrol-bin-2.7.2/cruisecontrol.sh from CC_HOME/cc + +****************** +Running the Sun java TCK +****************** + +If you wish to run the Sun JMS TCK, follow those two steps: +* Extract the TCK +* (As required by the TCK) Set TS_HOME to the location where the JMS TCK has been installed. + +****************** +Projects +****************** + +Project Description +qpid-cpp-trunk Builds and tests the C++ broker +qpid-cpp-trunk-perftests Runs the C++ performance tests +qpid-java-trunk Builds and runs the Java tests with an 0.8 inVM broker, a c++ broker without prefetch and a c++ broker with pre-fetch +bdbstore-cpp-trunk Builds the C++ store (required for the Java tests) +example-automation Runs all the example combinations for python, C++ and java +java-perftests Runs the java performance tests +java-jmstck Runs the java jms tck (see running the tck) \ No newline at end of file diff --git a/trunk/qpid/cc/config.properties b/trunk/qpid/cc/config.properties new file mode 100644 index 0000000000..82329722cc --- /dev/null +++ b/trunk/qpid/cc/config.properties @@ -0,0 +1,25 @@ +# +# +# 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. +# +# + +mail.subject=CC Report for +mail.host=localhost +mail.returnaddress=my-email +mail.list=list diff --git a/trunk/qpid/cc/config.xml b/trunk/qpid/cc/config.xml new file mode 100644 index 0000000000..ba89acc511 --- /dev/null +++ b/trunk/qpid/cc/config.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/config/bdbstore-cpp-trunk.xml b/trunk/qpid/cc/config/bdbstore-cpp-trunk.xml new file mode 100644 index 0000000000..254af62170 --- /dev/null +++ b/trunk/qpid/cc/config/bdbstore-cpp-trunk.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/config/cpp-perftests.xml b/trunk/qpid/cc/config/cpp-perftests.xml new file mode 100644 index 0000000000..8a5079b60b --- /dev/null +++ b/trunk/qpid/cc/config/cpp-perftests.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/config/cpp-trunk.xml b/trunk/qpid/cc/config/cpp-trunk.xml new file mode 100644 index 0000000000..56e1d2bb54 --- /dev/null +++ b/trunk/qpid/cc/config/cpp-trunk.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/config/dotnet-trunk.xml b/trunk/qpid/cc/config/dotnet-trunk.xml new file mode 100644 index 0000000000..0d922967e4 --- /dev/null +++ b/trunk/qpid/cc/config/dotnet-trunk.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/config/example-automation.xml b/trunk/qpid/cc/config/example-automation.xml new file mode 100644 index 0000000000..52dd135c24 --- /dev/null +++ b/trunk/qpid/cc/config/example-automation.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/config/java-jmstck.xml b/trunk/qpid/cc/config/java-jmstck.xml new file mode 100644 index 0000000000..2b10b0c5b5 --- /dev/null +++ b/trunk/qpid/cc/config/java-jmstck.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/config/java-perftests.xml b/trunk/qpid/cc/config/java-perftests.xml new file mode 100644 index 0000000000..45e1b14b9f --- /dev/null +++ b/trunk/qpid/cc/config/java-perftests.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/config/java-trunk.xml b/trunk/qpid/cc/config/java-trunk.xml new file mode 100644 index 0000000000..99f469725b --- /dev/null +++ b/trunk/qpid/cc/config/java-trunk.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/config/java/cpp.noprefetch.testprofile b/trunk/qpid/cc/config/java/cpp.noprefetch.testprofile new file mode 100644 index 0000000000..694451e551 --- /dev/null +++ b/trunk/qpid/cc/config/java/cpp.noprefetch.testprofile @@ -0,0 +1,4 @@ +broker.version=0-10 +broker=${project.root}/../cpp/src/qpidd --data-dir ${build.data} -t --load-module store_home/lib/.libs/libbdbstore.so --auth no --no-module-dir +max_prefetch=0 +test.excludesfile=${project.root}/010ExcludeList-noPrefetch \ No newline at end of file diff --git a/trunk/qpid/cc/config/java/cpp.testprofile b/trunk/qpid/cc/config/java/cpp.testprofile new file mode 100644 index 0000000000..7dcf75bac9 --- /dev/null +++ b/trunk/qpid/cc/config/java/cpp.testprofile @@ -0,0 +1,3 @@ +broker.version=0-10 +broker=${project.root}/../cpp/src/qpidd --data-dir ${build.data} -t --load-module store_home/lib/.libs/libbdbstore.so --auth no --no-module-dir +test.excludesfile=${project.root}/010ExcludeList-store diff --git a/trunk/qpid/cc/config/java/jndi.properties b/trunk/qpid/cc/config/java/jndi.properties new file mode 100644 index 0000000000..9340163622 --- /dev/null +++ b/trunk/qpid/cc/config/java/jndi.properties @@ -0,0 +1,42 @@ +# +# +# 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. +# +# + +java.naming.factory.initial = org.apache.qpid.jndi.PropertiesFileInitialContextFactory + +connectionfactory.QueueConnectionFactory = amqp://username:password@topicClientid/test?brokerlist='tcp://localhost:qpid_port' +connectionfactory.TopicConnectionFactory = amqp://username:password@topicClientid/test?brokerlist='tcp://localhost:qpid_port' +connectionfactory.jms/DURABLE_SUB_CONNECTION_FACTORY = amqp://username:password@duralbeTopicClientid/test?brokerlist='tcp://localhost:qpid_port' +connectionfactory.jms/MyTopicConnectionFactory = amqp://username:password@myTopicClientid/test?brokerlist='tcp://localhost:qpid_port' +connectionfactory.jms/TopicConnectionFactory = amqp://username:password@jmsTopicClientid/test?brokerlist='tcp://localhost:qpid_port' + +queue.MY_QUEUE=MY_QUEUE +queue.MY_QUEUE2=MY_QUEUE2 +queue.testQ0=testQ0 +queue.testQ1=testQ1 +queue.testQ2=testQ2 +queue.testQueue2=testQueue2 +queue.Q2=Q2 + +topic.MY_TOPIC=MY_TOPIC +topic.MY_TOPIC1=MY_TOPIC1 + +destination.direct = direct://amq.direct//directQueue + diff --git a/trunk/qpid/cc/dashboard-config.xml b/trunk/qpid/cc/dashboard-config.xml new file mode 100644 index 0000000000..9304322853 --- /dev/null +++ b/trunk/qpid/cc/dashboard-config.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/trunk/qpid/cc/scripts/bdbstorecppbuild.sh b/trunk/qpid/cc/scripts/bdbstorecppbuild.sh new file mode 100755 index 0000000000..3385c8d2f4 --- /dev/null +++ b/trunk/qpid/cc/scripts/bdbstorecppbuild.sh @@ -0,0 +1,24 @@ +#!/bin/bash +########################################################### +#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. +########################################################### + +if [ -f Makefile ]; then + make distclean +fi + ./bootstrap && ./configure CXXFLAGS="-O3 -DNDEBUG" --with-qpid-checkout=$CC_HOME && make diff --git a/trunk/qpid/cc/scripts/build.xml b/trunk/qpid/cc/scripts/build.xml new file mode 100644 index 0000000000..2144020017 --- /dev/null +++ b/trunk/qpid/cc/scripts/build.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + diff --git a/trunk/qpid/cc/scripts/check_examples.sh b/trunk/qpid/cc/scripts/check_examples.sh new file mode 100755 index 0000000000..c10936b36c --- /dev/null +++ b/trunk/qpid/cc/scripts/check_examples.sh @@ -0,0 +1,69 @@ +#!/bin/bash +########################################################### +#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. +########################################################### + +runVerifyScript() +{ + echo "------------------------" + $CC_HOME/cc/scripts/verify_all + echo "-----------------------" + echo "" +} + +cleanup() +{ +rm -f $CC_HOME/script.log +rm -f $CC_HOME/status.log +rm -f $CC_HOME/broker.log +} + +checkErrors() +{ +if test `cat $CC_HOME/script.log | grep -c 'FAIL'` -gt 0 +then + echo "FAILED" + printErrors > $CC_HOME/status.log +fi +} + +printErrors(){ + echo "The following scripts had failures" + cat CC_HOME/script.log | awk '{ + script = "" + while ((getline) == 1) + { + if ($1 == "script:") + { + script = $0 + } + if ($1 == "FAIL") + { + print substr(script,9) + } + }}' + echo "" +} + +echo "*************************************" +echo "Example Automation " +echo "" +cleanup +runVerifyScript +checkErrors +echo "*************************************" diff --git a/trunk/qpid/cc/scripts/cppbuild-perftests.sh b/trunk/qpid/cc/scripts/cppbuild-perftests.sh new file mode 100755 index 0000000000..782a472175 --- /dev/null +++ b/trunk/qpid/cc/scripts/cppbuild-perftests.sh @@ -0,0 +1,23 @@ +#!/bin/bash +########################################################### +#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. +########################################################### + +cd $CC_HOME/cpp +svn stat --no-ignore | awk '/^[I?]/{print $2}' | xargs rm -r +./bootstrap && ./configure CXXFLAGS="-O3 -DNDEBUG" && make -j4 all && cd src/tests && make -j4 check diff --git a/trunk/qpid/cc/scripts/cppbuild.sh b/trunk/qpid/cc/scripts/cppbuild.sh new file mode 100755 index 0000000000..b63feb7141 --- /dev/null +++ b/trunk/qpid/cc/scripts/cppbuild.sh @@ -0,0 +1,21 @@ +#!/bin/bash -x +########################################################### +#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. +########################################################### + +make distclean && ./bootstrap && ./configure && make \ No newline at end of file diff --git a/trunk/qpid/cc/scripts/dotnetbuild.sh b/trunk/qpid/cc/scripts/dotnetbuild.sh new file mode 100644 index 0000000000..51d2110757 --- /dev/null +++ b/trunk/qpid/cc/scripts/dotnetbuild.sh @@ -0,0 +1,21 @@ +#!/bin/bash -x +########################################################### +#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. +########################################################### + +mono $NANT_HOME/bin/NAnt.exe test \ No newline at end of file diff --git a/trunk/qpid/cc/scripts/javaconfig.sh b/trunk/qpid/cc/scripts/javaconfig.sh new file mode 100755 index 0000000000..7a1a3a1a7d --- /dev/null +++ b/trunk/qpid/cc/scripts/javaconfig.sh @@ -0,0 +1,27 @@ +#!/bin/bash +########################################################### +#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. +########################################################### + +# copy the profiles +sed "s#store_home#$CPPSTORE_HOME#g" $CC_HOME/cc/config/java/cpp.noprefetch.testprofile > "$CC_HOME/java/"/cpp.noprefetch.testprofile +sed "s#store_home#$CPPSTORE_HOME#g" $CC_HOME/cc/config/java/cpp.testprofile > "$CC_HOME/java"/cpp.testprofile +QPID_JARS=`find "$CC_HOME/java/build/lib" -name '*.jar' | tr '\n' ":"` +QPID_JARS=local.classes=$QPID_JARS +sed "s#local.classes=.*#$QPID_JARS#g" $TS_HOME/bin/build.properties > "$TS_HOME/bin"/build.properties-new +mv $TS_HOME/bin/build.properties-new $TS_HOME/bin/build.properties \ No newline at end of file diff --git a/trunk/qpid/cc/scripts/javajmstck.sh b/trunk/qpid/cc/scripts/javajmstck.sh new file mode 100644 index 0000000000..9d279ed38e --- /dev/null +++ b/trunk/qpid/cc/scripts/javajmstck.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# +# 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. +# + +cleanup(){ + echo "kill any existing broker instance" + stopBroker + rm -rf $CC_HOME/jmstck-data/* +} + +runBroker(){ + echo "******************************************************" + echo "Starting C++ broker" + ulimit -c unlimited + $CC_HOME/cpp/src/qpidd -t -d --data-dir $CC_HOME/jmstck-data --load-module=$CPPSTORE_HOME/lib/.libs/libbdbstore.so --port 0 --auth no --log-output $CC_HOME/jmstck-broker.log --no-module-dir + export QPID_PORT=`grep "Listening on TCP port" $CC_HOME/jmstck-broker.log | tail -n 1 | awk '{print $8}'` + echo " broker running on port: " $QPID_PORT + echo "******************************************************" + sed "s/qpid_port/$QPID_PORT/g" $CC_HOME/cc/config/java/jndi.properties > "$TS_HOME/classes"/jndi.properties +} + +runTck(){ + echo "******************************************************" + echo "Starting the TCK for the $1 iteration" + echo "******************************************************" + cd $TS_HOME/bin + $TS_HOME/bin/tsant runclient -Dwork.dir=work -Dreport.dir=report 2&>1 > $TS_HOME/tck$1.log + echo "******************************************************" + echo "TCK finished the $1 iteration" + echo "******************************************************" +} + +printResults(){ + TESTS_STR=`grep -a "\[java\] Completed running [0-9]* tests" $TS_HOME/tck$1.log` + PASSED_STR=`grep -a "\[java\] Number of Tests Passed =" $TS_HOME/tck$1.log` + FAILED_STR=`grep -a "Some tests did not pass" $TS_HOME/tck$1.log` + echo "-----------------------------------------" + echo "TCK run #$1 results:" + echo $TESTS_STR + echo $PASSED_STR + echo $FAILED_STR + if [ "$FAILED_STR" != "" ]; then + echo "SOME TCK FAILURES DETECTED: " + fi + echo "------------------------------------------" +} + +stopBroker(){ + echo "************************" + echo "Stopping the C++ broker" + echo "************************" + $CC_HOME/cpp/src/qpidd -q -p $QPID_PORT +} + +cleanup +counter=0 +runBroker +for j in 1 2 +do + counter=`expr $counter + 1` + runTck $counter + printResults $counter +done +cleanup diff --git a/trunk/qpid/cc/scripts/javareport.sh b/trunk/qpid/cc/scripts/javareport.sh new file mode 100755 index 0000000000..2b2469d31d --- /dev/null +++ b/trunk/qpid/cc/scripts/javareport.sh @@ -0,0 +1,25 @@ +#!/bin/bash +########################################################### +#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. +########################################################### +cd "$CC_HOME/java/build" +pwd +if [[ -d report_$1 ]]; then rm -fr report_$1; fi +if [[ -d report ]]; then mv report report_$1; fi +rm -rf ./results/* +rm -rf ./data/* \ No newline at end of file diff --git a/trunk/qpid/cc/scripts/runbroker.sh b/trunk/qpid/cc/scripts/runbroker.sh new file mode 100644 index 0000000000..43d9b39056 --- /dev/null +++ b/trunk/qpid/cc/scripts/runbroker.sh @@ -0,0 +1,42 @@ +#!/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. +########################################################### + +cleanup() +{ + echo "******************************************************" + echo "Cleanup" + echo "******************************************************" + for PID in `ps aux | grep 'qpidd'|grep 'broker.log'|grep -v 'grep'|awk '{ print $2 }'` + do + kill -9 $PID + done +} + +run_broker() +{ + echo "******************************************************" + echo "Starting C++ broker" + echo "******************************************************" + echo "" + $CC_HOME/cpp/src/qpidd -t -d --auth no --no-data-dir --log-output $CC_HOME/broker.log +} + +cleanup +run_broker \ No newline at end of file diff --git a/trunk/qpid/cc/scripts/stopbroker.sh b/trunk/qpid/cc/scripts/stopbroker.sh new file mode 100644 index 0000000000..f5839e141f --- /dev/null +++ b/trunk/qpid/cc/scripts/stopbroker.sh @@ -0,0 +1,31 @@ +#!/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. +########################################################### + + +stop_broker() +{ + echo "******************************************************" + echo "Stopping the C++ broker" + echo "******************************************************" + echo "" + $CC_HOME/cpp/src/qpidd -q +} + +stop_broker \ No newline at end of file diff --git a/trunk/qpid/cc/scripts/verify b/trunk/qpid/cc/scripts/verify new file mode 100755 index 0000000000..35191b17c9 --- /dev/null +++ b/trunk/qpid/cc/scripts/verify @@ -0,0 +1,100 @@ +#!/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. +########################################################### + +export DOTNET_EXAMPLES=$CC_HOME/dotnet/client-010/bin/mono-2.0/debug +export CLASSPATH=`find "$CC_HOME/java/build/lib" -name '*.jar' | tr '\n' ":"` +export CPP=$CC_HOME/cpp/examples +export JAVA=$CC_HOME/java/client/example/src/main/java +export PYTHONPATH=$CC_HOME/python/ +export PYTHON_EXAMPLES=$CC_HOME/python/examples + +cleanup() { + test -n "$QPIDD" && $QPIDD -q # Private broker + kill %% > /dev/null 2>&1 # Leftover background jobs +} + +trap cleanup EXIT + +ARGS="${QPID_HOST:-localhost} $QPID_PORT" + +outfile() { + file=$1 + while [ -f $file.out ]; do file="${file}X"; done + echo $file.out + } + +fail() { test -n "$*" && echo $* 1>&2 ; FAIL=1; return 1; } + +client() +{ + "$@" $ARGS > `outfile $*` || fail; +} + +clients() { for cmd in "$@"; do client $cmd; done; } + +waitfor() { until grep -a -l "$2" $1 >/dev/null 2>&1 ; do sleep 1 ; done ; } + +background() { + pattern=$1; shift + out=`outfile $*` + eval "$* $ARGS > $out &" || { fail; return 1; } + waitfor $out "$pattern" +} + +name() { + for x in $*; do name="$name `basename $x`"; done + echo $name; +} + +outputs() { + wait 2> /dev/null # Wait for all backgroud processes to complete + rm -f $script.out + for f in "$@"; do + { echo "==== `name $f`"; eval "cat $f"; } >> $script.out || fail + rm -rf `echo $f| awk '{ print $1 }'` + done +} + +verify() { + FAIL= + if [ -d $1 ]; then dir=$1; script=verify; + else dir=`dirname $1`; script=`basename $1`; fi + cd $dir || return 1 + rm -f *.out + echo "Running: $dir/$script" + { source ./$script && diff -ac $script.out $script.in ; } || fail + test -z "$FAIL" && rm -f *.out + return $FAIL +} + +HEX="[a-fA-F0-9]" +remove_uuid() { + sed "s/$HEX\{8\}-$HEX\{4\}-$HEX\{4\}-$HEX\{4\}-$HEX\{12\}//g" $* +} +remove_uuid64() { + sed 's/[-A-Za-z0-9_]\{22\}==//g' $* +} + + +for example in "$@"; do + echo "Running: $example " + if ( verify $example; ) then echo "PASS"; else echo "FAIL"; RET=1; fi + done +exit $RET diff --git a/trunk/qpid/cc/scripts/verify_all b/trunk/qpid/cc/scripts/verify_all new file mode 100755 index 0000000000..8d3ec669a7 --- /dev/null +++ b/trunk/qpid/cc/scripts/verify_all @@ -0,0 +1,166 @@ +#!/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. +########################################################### + +cleanup() +{ + echo "******************************************************" + echo "Cleanup" + echo "******************************************************" + for PID in `ps aux | grep 'qpidd'|grep 'broker.log'|grep -v 'grep'|awk '{ print $2 }'` + do + kill -9 $PID + done +} + +run_broker() +{ + echo "******************************************************" + echo "Starting C++ broker" + echo "******************************************************" + echo "" + $CC_HOME/cpp/src/qpidd -t -d --auth no --no-data-dir --log-to-file $CC_HOME/broker.log +} + +stop_broker() +{ + echo "******************************************************" + echo "Stopping the C++ broker" + echo "******************************************************" + echo "" + $CC_HOME/cpp/src/qpidd -q +} + +verify() +{ + #echo "arg " $2 " path: " $1 + for dir in $(find $1 -mindepth 1 -maxdepth 1 -type d -not -name '*.svn' -not -name $3 ) + do + echo $dir + for script in $(find $dir -mindepth 1 -maxdepth 1 -type f -name $2 -not -name '*.*') + do + # echo "script:" $script + cleanup + run_broker + $CC_HOME/cc/scripts/verify $script >> $CC_HOME/script.log 2>&1 + killall 'verify' + stop_broker + done +done +} + +run_python_python() +{ +echo "--------------------" +verify $CC_HOME/python/examples "verify" "xml-exchange" +echo "--------------------" +echo "" +} + + +run_cpp_cpp() +{ +echo "--------------------" +verify $CC_HOME/cpp/examples "verify" "*.svn" +echo "-------------------" +echo "" +} + +run_python_cpp_comb() +{ +echo "--------------------" +verify $CC_HOME/cpp/examples "verify_cpp_python" "*.svn" +verify $CC_HOME/cpp/examples "verify_python_cpp" "*.svn" +echo "-------------------" +echo "" +} + + +run_java_java() +{ +echo "--------------------" +verify $CC_HOME/java/client/example/src/main/java/org/apache/qpid/example/jmsexample "verify" "*.svn" +echo "-------------------" +echo "" +} + +run_java_cpp_comb() +{ +echo "--------------------" +verify $CC_HOME/java/client/example/src/main/java/org/apache/qpid/example/jmsexample "verify_java_cpp" "*.svn" +verify $CC_HOME/java/client/example/src/main/java/org/apache/qpid/example/jmsexample "verify_cpp_java" "*.svn" +echo "-------------------" +echo "" +} + +run_java_python_comb() +{ +echo "--------------------" +verify $CC_HOME/java/client/example/src/main/java/org/apache/qpid/example/jmsexample "verify_java_python" "*.svn" +verify $CC_HOME/java/client/example/src/main/java/org/apache/qpid/example/jmsexample "verify_python_java" "*.svn" +echo "-------------------" +echo "" +} + +run_dotnet_dotnet() +{ +echo "--------------------" +verify $CC_HOME/dotnet/client-010/examples/ "verify" "*.svn" +echo "-------------------" +echo "" +} + +run_cpp_dotnet() +{ +echo "--------------------" +verify $CC_HOME/dotnet/client-010/examples/ "verify_cpp_dotnet" "*.svn" +verify $CC_HOME/dotnet/client-010/examples/ "verify_dotnet_cpp" "*.svn" +echo "-------------------" +echo "" +} + +run_java_dotnet() +{ +echo "--------------------" +verify $CC_HOME/dotnet/client-010/examples/ "verify_java_dotnet" "*.svn" +verify $CC_HOME/dotnet/client-010/examples/ "verify_dotnet_java" "*.svn" +echo "-------------------" +echo "" +} + +run_python_dotnet() +{ +echo "--------------------" +verify $CC_HOME/dotnet/client-010/examples/ "verify_python_dotnet" "*.svn" +verify $CC_HOME/dotnet/client-010/examples/ "verify_dotnet_python" "*.svn" +echo "-------------------" +echo "" +} + + +run_python_python +run_python_cpp_comb +run_cpp_cpp +run_java_java +run_java_cpp_comb +run_java_python_comb +run_dotnet_dotnet +run_cpp_dotnet +run_java_dotnet +run_python_dotnet \ No newline at end of file diff --git a/trunk/qpid/cpp/BuildInstallSettings.cmake b/trunk/qpid/cpp/BuildInstallSettings.cmake new file mode 100644 index 0000000000..e611a141c9 --- /dev/null +++ b/trunk/qpid/cpp/BuildInstallSettings.cmake @@ -0,0 +1,132 @@ +# +# 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. +# + +# Settings related to the Qpid build and install CMake/CTest/CPack procedure. +# These are used by both the C++ and WCF components. + +set (QPID_VERSION_MAJOR 0) +set (QPID_VERSION_MINOR 6) + +# When doing installs, there are a number of components that the item can +# be associated with. Since there may be different sets of components desired +# for the various platforms, the component names are defined here. When +# setting the COMPONENT in an install directive, use these to ensure that +# the item is installed correctly. + +if (WIN32) + # Install types; these defines the component sets that are installed. + # Each component (below) indicates which of these install type(s) it is + # included in. The user can refine the components at install time. + set (CPACK_ALL_INSTALL_TYPES Broker Development Full) + + set (QPID_COMPONENT_COMMON Common) + set (CPACK_COMPONENT_COMMON_INSTALL_TYPES Broker Development Full) + set (CPACK_COMPONENT_COMMON_DISPLAY_NAME "Required common runtime items") + set (CPACK_COMPONENT_COMMON_DESCRIPTION + "Run-time library common to all runtime components in Qpid.\nThis item is required by both broker and client components.") + + set (QPID_COMPONENT_BROKER Broker) + set (CPACK_COMPONENT_BROKER_DEPENDS Common) + set (CPACK_COMPONENT_BROKER_INSTALL_TYPES Broker Full) + set (CPACK_COMPONENT_BROKER_DISPLAY_NAME "Broker") + set (CPACK_COMPONENT_BROKER_DESCRIPTION + "Messaging broker; controls message flow within the system.\nAt least one broker is required to run any messaging application.") + + set (QPID_COMPONENT_CLIENT Client) + set (CPACK_COMPONENT_CLIENT_DEPENDS Common) + set (CPACK_COMPONENT_CLIENT_INSTALL_TYPES Development Full) + set (CPACK_COMPONENT_CLIENT_DISPLAY_NAME "Client runtime libraries") + set (CPACK_COMPONENT_CLIENT_DESCRIPTION + "Runtime library components required to build and execute a client application.") + + set (QPID_COMPONENT_CLIENT_INCLUDE ClientInclude) + set (CPACK_COMPONENT_CLIENTINCLUDE_INSTALL_TYPES Development Full) + set (CPACK_COMPONENT_CLIENTINCLUDE_DISPLAY_NAME + "Client programming header files") + set (CPACK_COMPONENT_CLIENTINCLUDE_DESCRIPTION + "C++ header files required to build any Qpid messaging application.") + + set (QPID_COMPONENT_EXAMPLES Examples) + set (CPACK_COMPONENT_EXAMPLES_INSTALL_TYPES Development Full) + set (CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "C++ Client programming examples") + set (CPACK_COMPONENT_EXAMPLES_DESCRIPTION + "Example source code for using the C++ Client.") + + set (QPID_COMPONENT_QMF QMF) + set (CPACK_COMPONENT_QMF_INSTALL_TYPES Development Full) + set (CPACK_COMPONENT_QMF_DISPLAY_NAME + "Qpid Management Framework (QMF)") + set (CPACK_COMPONENT_QMF_DESCRIPTION + "QMF Agent allows you to embed QMF management in your program.\nQMF Console allows you to build management programs using QMF.") + + set (QPID_INSTALL_BINDIR bin CACHE STRING + "Directory to install user executables") + set (QPID_INSTALL_CONFDIR conf CACHE STRING + "Directory to install configuration files") + set (QPID_INSTALL_DATADIR conf CACHE STRING + "Directory to install read-only arch.-independent data root") + set (QPID_INSTALL_EXAMPLESDIR examples CACHE STRING + "Directory to install programming examples in") + set (QPID_INSTALL_HTMLDIR html CACHE STRING + "Directory to install HTML documentation") + set (QPID_INSTALL_INCLUDEDIR include CACHE STRING + "Directory to install programming header files") + set (QPID_INSTALL_LIBDIR bin CACHE STRING + "Directory to install library files") + set (QPID_INSTALL_SBINDIR bin CACHE STRING + "Directory to install system admin executables") + set (QPIDC_MODULE_DIR plugins/client CACHE STRING + "Directory to load client plug-in modules from") + set (QPIDD_MODULE_DIR plugins/broker CACHE STRING + "Directory to load broker plug-in modules from") +endif (WIN32) + +if (UNIX) + set (QPID_COMPONENT_BROKER runtime) + set (QPID_COMPONENT_CLIENT runtime) + set (QPID_COMPONENT_COMMON runtime) + set (CPACK_COMPONENT_RUNTIME_DISPLAY_NAME + "Items required to run broker and/or client programs") + set (QPID_COMPONENT_CLIENT_INCLUDE development) + set (QPID_COMPONENT_EXAMPLES development) + set (QPID_COMPONENT_QMF development) + set (CPACK_COMPONENT_DEVELOPMENT_DISPLAY_NAME + "Items required to build new C++ Qpid client programs") + + set (QPID_INSTALL_BINDIR bin CACHE STRING + "Directory to install user executables") + set (QPID_INSTALL_CONFDIR etc/qpid CACHE STRING + "Directory to install configuration files") + set (QPID_INSTALL_DATADIR share/qpid CACHE STRING + "Directory to install read-only arch.-independent data root") + set (QPID_INSTALL_EXAMPLESDIR share/examples CACHE STRING + "Directory to install programming examples in") + set (QPID_INSTALL_HTMLDIR html CACHE STRING + "Directory to install HTML documentation") + set (QPID_INSTALL_INCLUDEDIR include CACHE STRING + "Directory to install programming header files") + set (QPID_INSTALL_LIBDIR lib CACHE STRING + "Directory to install library files") + set (QPID_INSTALL_SBINDIR sbin CACHE STRING + "Directory to install system admin executables") + set (QPIDC_MODULE_DIR ${QPID_INSTALL_LIBDIR}/qpid/client CACHE STRING + "Directory to load client plug-in modules from") + set (QPIDD_MODULE_DIR ${QPID_INSTALL_LIBDIR}/qpid/daemon CACHE STRING + "Directory to load broker plug-in modules from") +endif (UNIX) diff --git a/trunk/qpid/cpp/CMakeLists.txt b/trunk/qpid/cpp/CMakeLists.txt new file mode 100644 index 0000000000..272d007c4a --- /dev/null +++ b/trunk/qpid/cpp/CMakeLists.txt @@ -0,0 +1,101 @@ +# +# 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. +# +project(qpid-cpp) + +cmake_minimum_required(VERSION 2.4.0 FATAL_ERROR) +if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +endif(COMMAND cmake_policy) + +include(BuildInstallSettings.cmake) + +set (qpidc_version ${QPID_VERSION_MAJOR}.${QPID_VERSION_MINOR}) + +enable_testing() +include (CTest) + +# Overall packaging/install options. +# This section also has all the setup for various packaging-specific options. +set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") +if (WIN32) + # Include installing the MSVCRT library + include(InstallRequiredSystemLibraries) + set (CPACK_GENERATOR "NSIS") + set (CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/packaging/NSIS\\\\qpid-icon.ico") + set (CPACK_NSIS_MUI_UNIICON "${CMAKE_CURRENT_SOURCE_DIR}/packaging/NSIS\\\\qpid-icon.ico") + set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/packaging/NSIS\\\\qpid-install-banner.bmp") + set (CPACK_NSIS_URL_INFO_ABOUT "http://qpid.apache.org/") + # Needs this to correctly set up Start menu links later. + set (CPACK_PACKAGE_EXECUTABLES "") + + # The WCF/C++ client is built separately (it doesn't build via CMake) + # but is installed with the C++ components on Windows. + install (PROGRAMS + ${CMAKE_SOURCE_DIR}/../wcf/src/Apache/Qpid/Channel/bin/Release/Apache.Qpid.Channel.dll + ${CMAKE_SOURCE_DIR}/../wcf/src/Apache/Qpid/Channel/bin/Release/Apache.Qpid.Interop.dll + DESTINATION ${QPID_INSTALL_LIBDIR} + COMPONENT ${QPID_COMPONENT_CLIENT}) + install (DIRECTORY ${CMAKE_SOURCE_DIR}/../wcf/samples/Channel + DESTINATION ${QPID_INSTALL_EXAMPLESDIR} + COMPONENT ${QPID_COMPONENT_EXAMPLES} + PATTERN ".svn" EXCLUDE) + +set (CPACK_NSIS_EXTRA_INSTALL_COMMANDS " + ExecWait 'gacutil -I \\\"$INSTDIR\\\\${QPID_INSTALL_LIBDIR}\\\\Apache.Qpid.Channel.dll\\\"' + ExecWait 'gacutil -I \\\"$INSTDIR\\\\${QPID_INSTALL_LIBDIR}\\\\Apache.Qpid.Interop.dll\\\"' + ") +set (CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS " + ExecWait 'gacutil /u \\\"Apache.Qpid.Channel\\\"' + ExecWait 'gacutil /u \\\"Apache.Qpid.Interop\\\"' + ") + +endif (WIN32) + +set (QPIDC_CONF_FILE ${QPID_INSTALL_CONFDIR}/qpidc.conf CACHE STRING + "Name of the Qpid client configuration file") +set (QPIDD_CONF_FILE ${QPID_INSTALL_CONFDIR}/qpidd.conf CACHE STRING + "Name of the Qpid broker configuration file") + +install(FILES LICENSE NOTICE README SSL RELEASE_NOTES DESIGN + xml/cluster.xml INSTALL-WINDOWS + DESTINATION ${QPID_INSTALL_DATADIR}) + +if (WIN32) + set (CMAKE_DEBUG_POSTFIX "d") +endif (WIN32) + +# set(CMAKE_INCLUDE_CURRENT_DIR ON) + +add_subdirectory(managementgen) +add_subdirectory(etc) +add_subdirectory(src) +add_subdirectory(docs/api) +# add_subdirectory(docs/man) +add_subdirectory(examples) + +set(CPACK_PACKAGE_NAME "qpid-cpp") +set(CPACK_PACKAGE_VENDOR "Apache Software Foundation") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Apache Qpid C++") +set(CPACK_PACKAGE_VERSION "${qpidc_version}") +set(CPACK_PACKAGE_VERSION_MAJOR "${QPID_VERSION_MAJOR}") +set(CPACK_PACKAGE_VERSION_MINOR "${QPID_VERSION_MINOR}") +set(CPACK_PACKAGE_VERSION_PATCH "0") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "qpidc-${qpidc_version}") + +include (CPack) diff --git a/trunk/qpid/cpp/CTestConfig.cmake b/trunk/qpid/cpp/CTestConfig.cmake new file mode 100755 index 0000000000..288d9333ae --- /dev/null +++ b/trunk/qpid/cpp/CTestConfig.cmake @@ -0,0 +1,13 @@ +## This file should be placed in the root directory of your project. +## Then modify the CMakeLists.txt file in the root directory of your +## project to incorporate the testing dashboard. +## # The following are required to uses Dart and the Cdash dashboard +## ENABLE_TESTING() +## INCLUDE(CTest) +set(CTEST_PROJECT_NAME "qpid-cpp") +set(CTEST_NIGHTLY_START_TIME "20:00:00 EST") + +set(CTEST_DROP_METHOD "http") +set(CTEST_DROP_SITE "www.riverace.com") +set(CTEST_DROP_LOCATION "/CDash-1.4.2/submit.php?project=qpid-cpp") +set(CTEST_DROP_SITE_CDASH TRUE) diff --git a/trunk/qpid/cpp/DESIGN b/trunk/qpid/cpp/DESIGN new file mode 100644 index 0000000000..c814f1c53d --- /dev/null +++ b/trunk/qpid/cpp/DESIGN @@ -0,0 +1,78 @@ +Qpid C++ AMQP implementation +============================= + += Project layout = + +For Build system design see comment at start of Makefile. + +Project contains: + * Client library (lib/libqpid_client): src/qpid/client + * Broker library (lib/libqpid_broker): src/qpid/broker + * Common classes + * src/qpid/framing: wire encoding/decoding + * src/qpid/sys: io, threading etc + * src/qpid/Exception.cpp, QpidError.cpp: Exception classes. + * Qpid Daemon (bin/qpidd): src/qpidd.cpp + +Unit tests in test/unit: each *Test.cpp builds a CppUnit plugin. + +Client tests in test/client: each *.cpp builds a test executable. + +Test utilities: test/include + += Client Design = + +The client module is primarily concerned with presenting the +functionality offered by AMQP to users through a simple API that +nevertheless allows all the protocol functionality to be exploited. +[Note: it is currently nothing like complete in this regard!] + +The code in the client module is concerned with the logic of the AMQP +protocol and interacts with the lower level transport issues through +the InputHandler and OutputHandler abstractions defined in +common/framing. It uses these in conjunction with the Connector +interface, defined in common/io, for establishing a connection to the +broker and interacting with it through the sending and receiving of +messages represented by AMQFrame (defined in common/framing). + +The Connector implementation is responsible for connection set up, +threading strategy and getting data on and off the wire. It delegates +to the framing module for encode/decode operations. The interface +between the io and the framing modules is primarily through the Buffer +and AMQFrame classes. + +A Buffer allows 'raw' data to be read or written in terms of the AMQP +defined 'types' (octet, short, long, long long, short string, long +string, field table etc.). AMQP is defined in terms frames with +specific bodies and the frame (as well as these different bodies) are +defined in terms of these 'types'. The AMQFrame class allows a frame +to be decoded by reading from the supplied buffer, or it allows a +particular frame to be constructed and then encoded by writing to the +supplied buffer. The io layer can then access the raw data that +'backs' the buffer to either out it on the wire or to populate it from +the wire. + +One minor exception to this is the protocol initiation. AMQP defines +a protocol 'header', that is not a frame, and is sent by a client to +intiate a connection. The Connector allows (indeed requires) such a +frame to be passed in to initialise the connection (the Acceptor, when +defined, will allow an InitiationHandler to be set allowing the broker +to hook into the connection initiation). In order to remove +duplication, the ProtocolInitiation class and the AMQFrame class both +implement a AMQDataBlock class that defines the encode and decode +methods. This allows both types to be treated generically for the +purposes of encoding. In decoding, the context determines which type +is expected and should be used for decoding (this is only relevant to +the broker). + + + + + --------api-------- + Client Impl ...............uses..... +input handler --> --------- --------- <-- output handler . + A | . + | | framing utils + | V . + ------------------- <-- connector . + IO Layer ................uses.... diff --git a/trunk/qpid/cpp/INSTALL b/trunk/qpid/cpp/INSTALL new file mode 100644 index 0000000000..d54d2affc3 --- /dev/null +++ b/trunk/qpid/cpp/INSTALL @@ -0,0 +1,356 @@ + Installing Qpid/C++ + =================== + +Table of Contents +================= +1. Introduction + +2. Prerequisites + 2.1. What to Install + 2.2. How to Install + 2.2.1. Using Package Management Tools + 2.2.2. From Source + a. openais + b. boost + c. autotools + 2.3. Important Environment Variable Settings + +3. Building from a Source Distribution +4. Building a Repository Working Copy +5. Portability +6. Tests +7. Doxygen +8. Troubleshooting + + +1. Introduction +=============== +Note that the daemon and client API can be installed separately. + +This document describes how to build the Qpid/C++ broker and client, either +from a checkout of the source or from a source distribution, on Linux/UNIX. +Please see INSTALL-WINDOWS for information on building on Windows. + +This also explains how to install the required prerequisites for Qpid/C++. + + +2. Prerequisites +================ +We prefer to avoid spending time accommodating older versions of these +packages, so please make sure that you have the latest stable versions. +Known version numbers for a succesfull build are given in brackets, take +these as a recommended minimum version. Older unix versions, for example, +Redhat Linux 3, will almost certainly require some packages to be upgraded. + + +2.1. What to Install +==================== +The following libraries and header files must be installed to build +a source distribution: + * boost (1.35)(*) + * e2fsprogs (1.39) + * pkgconfig (0.21) + +(*) earlier versions of boost e.g. 1.33 also work and there is a patch +to get 1.32 working in the svn tree though that is only recommended as +a last resort. + +Optional cluster functionality requires ONE of: + * openais (0.80.3) + * corosync (1.0.0.rc1) + + Optional XML exchange requires: + * xqilla (2.0.0) + * xerces-c (2.7.0) + +Optional SSL support requires: +* nss +* nspr + +Qpid has been built using the GNU C++ compiler: + * gcc (3.4.6) + +If you want to build directly from the SVN repository you will need +all of the above plus: + + * GNU make (3.8.0) + * autoconf (2.61) + * automake (1.9.6) + * help2man (1.36.4) + * libtool (1.5.22) + * doxygen (1.5.1) + * graphviz (2.12) + * ruby 1.8 (1.8.4) + + +NOTE: make sure to install the related '-devel' packages also! + +To build the QMF (Qpid Management Framework) bindings for Ruby and Python, +the following must also be installed: + + * ruby-devel + * python-devel + * swig (1.3.35) + +UUID problems: +In some later Linux releases (such as Fedora 12), the uuid/uuid.h file has been +moved from e2fsprogs-devel into libuuid-devel. If you are using a newer Linux +release and run into a problem during configure in which uuid.h cannot be found, +look for and install the libuuid-devel package. + + +2.2. How to Install +=================== + +2.2.1. Using Package Management Tools +===================================== + +On linux most packages can be installed using your distribution's +package management tool. For example on Fedora: + + # yum install boost-devel e2fsprogs-devel pkgconfig gcc-c++ make autoconf automake ruby libtool help2man doxygen graphviz + +The optional clustering packages changed name in Fedora 10. On Fedora 9 or earlier: + # yum install openais-devel cman-devel +On Fedora 10 or later + # yum install corosync-devel cmanlib-devel + +For SASL and SSL, include + # yum install cyrus-sasl-devel + +For the XML Exchange, include: + + # yum install xqilla-devel xerces-c-devel + +Follow the manual installation instruction below for any packages not +available through your distributions packaging tool. + +2.2.2. From Source +================== +Required dependencies can be installed and built from source distributions. +It is recommended that you create a directory to install them to, for example, +~/qpid-tools. + + To build and install the dependency pakcages: + + 1. Unzip and untar them and cd to the untared directory. + 2. do: + # ./configure --prefix=~/qpid-tools + # make install + +The exceptions are openais and boost. + +a. openais +========== + +If ais is shipped with you platform and you have 0.80.3-x or later, skip +builing ais + +To build ais: Unpack the source distribution and do: + # make + # sudo make install DESTDIR= + # sudo ldconfig + +This will install in the standard places (/usr/lib, /usr/include etc.) + +Configuring ais: + +Edit /etc/ais/openais.conf and modify the "bindnetaddr" setting +to your hosts IP address. Do not use 127.0.0.1. + +Make sure the UDP port set for mcastport in openais.conf (5405 by +default) is not blocked by your firewall. Disable the firewall or +configure it to allow this port for UDP. + +Finally start the ais daemon (must be done as root): + # sudo /sbin/aisexec + +Note that to run the AIS tests your primary group must be "ais". You +can change your primary group with the usermod command or set it +temporarily with the newgrp command. + +Troubleshooting tips: + +If aisexec goes into a loop printing "entering GATHER state", verify +your firewall is allowing UDP traffic on the mcastport set in +openais.conf. + +If aisexec reports "got nodejoin message 127.0.0.1" verify the +bindnetaddr in openais.conf is an active local IP address. ifconfig +will list local addresses. + +When aisexec is working correctly, the start-up log messages will end +with "entering OPERATIONAL state." and "got nodejoin message " where is the local IP address specified for +bindnetaddr in openais.conf. + +For further info on openais http://openais.org/ + +b. boost +======== + 1. Unpack boost-jam. + 2. Add bjam in the unpacked directory to your path. + 3. Unpack boost and cd to the boost untarred directory. + 4. do: + + # bjam toolset=gcc variant=release threading=single link=shared \ + --layout=system --prefix=~/qpid-tools install + +c. autotools +============ +If you don't have sufficiently up-to-date autotools you can get the +latest by running the script qpid-autotools-install. + +1. Decide where you would like to install the tools. It should be in a + local directory so that you do not need root privileges. (Suggest + $HOME/qpid-tools.) Create an empty directory. +2. Modify your environment variable PATH to ensure that the bin directory + within this directory comes first in the PATH string: + PATH=$HOME/qpid-tools/bin:$PATH +3. Set PKG_CONFIG_PATH=$HOME/qpid-tools/lib/pkgconfig:/usr/lib/pkgconfig + (or if it already exists, make sure that the above path to your + qpid-tools directory is first). +4. Run the install utility from the cpp directory: + ./qpid-autotools-install --prefix=$HOME/qpid-tools --skip-check + (Note that --prefix will only accept an absolute path, so don't use + ~/qpid-tools.) The utility will download, compile and install the + required tools into the qpid-tools directory (this may take a little + time). Watch for any notices about paths at the end of the install - + this means that your environment is not correct - see steps 2 and 3 + above. + NOTE: If you omit the --skip-check option, the check of the build + can add up to an hour to what is normally a few minutes of install + time. +5. Perform a check: from the command-line run "which automake" and + ensure that it finds the automake in your qpid-tools directory. If not, + check that the build completed normally and your environment. +6. (Optional) If having the build artifacts lying around bothers you, delete + the (hidden) build directory cpp/.build-auto-tools. + +To see help, run ./qpid-autotools-install --help. + + +2.3. Important Environment Variable Settings +============================================ +Ensure that all the build tools are available on your path, when they are +manually installed to non-standard locations. For example: + + # export PATH=~/qpid-tools/bin:$PATH + +Ensure that pkg-config is set up correctly. For example: + + # export PKG_CONFIG_PATH=~/qpid-tools/lib/pkgconfig:/usr/local/pkgconfig + # export PKG_CONFIG=~/qpid-tools/bin/pkg-config + +Ensure that the boost libraries are made available on the gcc library path. +For example: + + # export CXXFLAGS=-I~/qpid-tools/include/boost-1_33_1 + + +3. Building from a Source Distribution +====================================== +In the distribution directory + +Build and install with: + + # ./configure --prefix= + # make all + # make install + +To build and test everything: + + # make + # make check + +This builds in the source tree. You can have multiple builds in the +same working copy with different configuration. For example you can do +the following to build twice, once for debug, the other with +optimization: + + # make distclean + # mkdir .build-dbg .build-opt + # (cd .build-opt ../configure --prefix=/tmp/x && make && make check) + # (cd .build-dbg ../configure CXXFLAGS=-g --prefix=/tmp/x \ + && make && make check) + + +4. Building a Repository Working Copy +===================================== +To get the source code from the subversion repository (trunk) do: + + # svn checkout https://svn.apache.org/repos/asf/incubator/qpid/trunk/. + +To build a fresh checkout: + +Cd to qpid/cpp subdirectory. Before running make on a fresh checkout do: + + # ./bootstrap + +This generates config, makefiles and the like - check the script for +details. You only need to do this once, "make" will keep everything up +to date thereafter (including re-generating configuration & Makefiles +if the automake templates change etc.) + +If you are developing code yourself, or if you want to help +us keep the code as tight and robust as possible, consider enabling +the use of valgrind. If you configure like this: + + # ./configure --enable-valgrind + +That will arrange (assuming you have valgrind installed) for "make check" +to run tests via valgrind. That makes the tests run more slowly, but +helps detect certain types of bugs, as well as memory leaks. If you run +"make check" and valgrind detects a leak that is not listed as being +"ignorable-for-now", the test script in question will fail. However, +recording whether a leak is ignorable is not easy, when the stack +signature, libraries, compiler, O/S, architecture, etc., may all vary, +so if you see a new leak, try to figure out if it's one you can fix +before adding it to the list. + +Now follow instruction for building from a source distribution in step (3). + + +5. Portability +============== +All system calls are abstracted by classes under lib/common/sys. This +provides an object-oriented C++ API and contains platform-specific +code. + +These wrappers are mainly inline by-value classes so they impose no +run-time penalty compared do direct system calls. + +Initially we will have a full linux implementation and a portable +implementation sufficient for the client using the APR portability +library. The implementations may change in future but the interface +for qpid code outside the qpid/sys namespace should remain stable. + + +6. Tests +======== +See src/tests/README for details. + + +7. Doxygen +========== +Doxygen generates documentation in several formats from source code +using special comments. You can use javadoc style comments if you know +javadoc, if you don't or want to know the fully story on doxygen +markup see http://www.stack.nl/~dimitri/doxygen/ + +Even even if the code is completely uncommented, doxygen generates +UML-esque dependency diagrams that are ''extremely'' useful in navigating +around the code, especially for newcomers. + +To try it out "make doxygen" then open doxygen/html/index.html. + + +8. Troubleshooting +================== +When building, get the following on configure + configure: error: Package requirements (apr-1 >= 1.2.2) were not met: + + No package 'apr-1' found + +The following has not been set + export PKG_CONFIG_PATH=$HOME/qpid-tools/lib/pkgconfig:/usr/lib/pkgconfig diff --git a/trunk/qpid/cpp/INSTALL-WINDOWS b/trunk/qpid/cpp/INSTALL-WINDOWS new file mode 100644 index 0000000000..0b09572816 --- /dev/null +++ b/trunk/qpid/cpp/INSTALL-WINDOWS @@ -0,0 +1,153 @@ + Installing Qpid/C++ on Windows + ============================== + +Table of Contents +================= +1. Introduction + +2. Prerequisites + 2.1. What to Install + 2.2. Important Environment Variable Settings + +3. Building from a Source Distribution +4. Building a Repository Working Copy +5. Tests +6. Doxygen +7. Troubleshooting + + +1. Introduction +=============== +Note that the broker and client API can be built and installed separately. +They both link against a common library. + +This document describes how to build the Qpid/C++ broker and client on +Windows using Microsoft Visual Studio 2008 (VC9). It describes how to build +from both a checkout of the source and from a source distribution. + +Please see INSTALL for information on building on Linux/UNIX. + + +2. Prerequisites +================ +We prefer to avoid spending time accommodating older versions of these +packages, so please make sure that you have the latest stable versions. +Known version numbers for a successful build are given in parentheses. +Take these as a recommended minimum version. + +2.1. What to Install +==================== + +The following libraries and header files must be installed to build +from either a source checkout or a source distribution: + + * boost (1.35)(*) + +earlier versions of boost e.g. 1.33 also work + +To build from a source repository (SVN) checkout you will need boost plus: + + * CMake (2.4) + * python (2.5.2) + * ruby (1.8.4) + +Regardless of which type of build you perform, if you wish to run the full +test suite, you will need to have python, listed above, installed. + +2.2. Important Environment Variable Settings +============================================ +Ensure that all the build tools are available on your path, when they are +manually installed to non-standard locations. For example: + + # set PATH=C:\python25;%PATH% + +It is also necessary to set BOOST_ROOT to refer to the base of your Boost +installation. The Visual Studio projects refer to it. For example: + + # set BOOST_ROOT=C:\Program Files\boost\boost_1_35_0 + + +3. Building from a Source Distribution +====================================== +The Qpid client/broker, examples, and tests are built with separate +Visual Studio solution files. The procedure for all three is the same. + +Start the Visual Studio IDE and open the desired solution. They are located +under the distribution directory in the following places: + +- broker/client: src/qpidc.sln +- examples: src/examples/examples.sln +- tests: src/tests/tests.sln + +Open the desired solution, select Debug or Release, and build. +You can build both Release and Debug from the same project. + +If you build all the projects you can then "Build" the RUN_TESTS project. +This will run the test suite against the Qpid version just built. + + +4. Building a Repository Working Copy +===================================== +This section will assume that you will create a directory for your Qpid +work. This directory will be referred to below as C:\qpid. + +To get the source code from the subversion repository (trunk) do: + + C:\qpid> svn checkout https://svn.apache.org/repos/asf/qpid/trunk + +The first step in the build is to configure and generate the Visual +Studio projects. This step also generates a significant number of source +files that are part of the build. + +- Run CMakeSetup. The CMake binary install often leaves a shortcut to + CMakeSetup on the desktop - it is named CMake. +- The CMakeSetup window has 2 directory selection areas at the top; one for + where the source is located (C:\qpid\trunk\qpid\cpp) and one for where you + wish to place the build. A directory separate from the source directory is + generally preferred; it can be, but need not be, a subdirectory to the + source. (C:\qpid\build) +- The first time you run CMakeSetup it will ask you to select a generator. + You should select the method you prefer to build with: Visual Studio 2008 + or NMake Makefiles. +- The Cache Values area of the window is where the system and build settings + are displayed. You can change these by clicking on the values if desired. +- Click the Configure button. The first time Qpid is configured this step may + take a few minutes and you will see lots of messages about generated source + files. If the Cache Values area has any red lines, change or correct the + value if needed (it may only be red because it's new - you only need to + change/correct items that correspond to errors in configuration). Click + Configure again. Repeat until all the Cache Values are gray. +- Click the OK button to generate the project/make files. + +Now follow instruction for building from a source distribution in step (3). + + +5. Tests +======== +See src/tests/README for details. + + +6. Doxygen +========== +Doxygen generates documentation in several formats from source code +using special comments. You can use javadoc style comments if you know +javadoc, if you don't or want to know the fully story on doxygen +markup see http://www.stack.nl/~dimitri/doxygen/ + +Even even if the code is completely uncommented, doxygen generates +UML-esque dependency diagrams that are ''extremely'' useful in navigating +around the code, especially for newcomers. + +The user-level API documentation can be generated by building the +user-api-docs project from the generated Visual Studio solution. The +documentation is generated into the docs/api/html directory under your +build directory. + + +7. Troubleshooting +================== + +When the broker is executed it will try to store a file in the "qpidd" +subdirectory of the current user's temporary file directory, or in +C:\WINDOWS\TEMP. If the qpidd directory can't be created or accessed the +broker startup will fail. diff --git a/trunk/qpid/cpp/LICENSE b/trunk/qpid/cpp/LICENSE new file mode 100644 index 0000000000..cff2a5e25d --- /dev/null +++ b/trunk/qpid/cpp/LICENSE @@ -0,0 +1,234 @@ +========================================================================= +== Apache License == +========================================================================= + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + +========================================================================= +== Boost License == +========================================================================= + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + diff --git a/trunk/qpid/cpp/Makefile.am b/trunk/qpid/cpp/Makefile.am new file mode 100644 index 0000000000..6db7ffd46e --- /dev/null +++ b/trunk/qpid/cpp/Makefile.am @@ -0,0 +1,33 @@ +# +# 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. +# + +LIBTOOL_DEPS = @LIBTOOL_DEPS@ + +AUTOMAKE_OPTIONS = 1.9.2 foreign +ACLOCAL_AMFLAGS = -I m4 + +EXTRA_DIST = \ + LICENSE NOTICE README SSL RELEASE_NOTES DESIGN \ + xml/cluster.xml INSTALL-WINDOWS CMakeLists.txt BuildInstallSettings.cmake + +SUBDIRS = managementgen etc src docs/api docs/man examples bindings/qmf + +# Update libtool, if needed. +libtool: $(LIBTOOL_DEPS) + $(SHELL) ./config.status --recheck diff --git a/trunk/qpid/cpp/NOTICE b/trunk/qpid/cpp/NOTICE new file mode 100644 index 0000000000..5de355a56c --- /dev/null +++ b/trunk/qpid/cpp/NOTICE @@ -0,0 +1,21 @@ +========================================================================= +== NOTICE file corresponding to the section 4 d of == +== the Apache License, Version 2.0, == +== in this case for the Apache Qpid distribution. == +========================================================================= + +This product includes software developed by the Apache Software Foundation +(http://www.apache.org/). + +Please read the LICENSE file present in the root directory of this +distribution. + +Aside from contributions to the Apache Qpid project, this software also +includes (binary only): + - None at this time + +Project requires, not packaged: + * boost version 1.33.1 or later under the Boost Software License, and + can be downloaded from http://www.boost.org + - Included in most OS platforms by default. + diff --git a/trunk/qpid/cpp/README b/trunk/qpid/cpp/README new file mode 100644 index 0000000000..a16dec09c4 --- /dev/null +++ b/trunk/qpid/cpp/README @@ -0,0 +1,38 @@ + Qpid/C++ + ======== + +Table of Contents +================= +1. Introduction +2. Available Documentation +3. Quick start + + +1. Introduction +=============== +Qpid/C++ is a C++ implementation of the AMQP protcol described at +http://amqp.org/ + +This release of Qpid/C++ implements the AMQP 0-10. +It will not inter-operate with AMQP 0-8/0-9 implementations. + +For additional software or information on the Qpid project go to: +http://cwiki.apache.org/qpid/ + + +2. Available Documentation +========================== + - INSTALL - How to install Qpid/C++. + - SSL - How to setup SSL + - RELEASE_NOTES - Release notes. + - DESIGN - Qpid/C++ implementation. + - LICENSE - Apache license. + - NOTICE - Corresponds to the section 4 d of + the Apache License, Version 2.0. + +3. Quick start +============== +If you are impatient to get on, ./configure && make will usually be +sufficient to compile. Running make check will run tests, make install +will install the client and daemon. For more detailed information, +please see the INSTALL notes. diff --git a/trunk/qpid/cpp/RELEASE_NOTES b/trunk/qpid/cpp/RELEASE_NOTES new file mode 100644 index 0000000000..b861503f9d --- /dev/null +++ b/trunk/qpid/cpp/RELEASE_NOTES @@ -0,0 +1,21 @@ +Apache Qpid C++ M4 Release Notes +-------------------------------- + +The Qpid M4 release of the c++ client and broker support the 0-10 +version of the AMQP specification. You can access this specification +from: + +http://jira.amqp.org/confluence/display/AMQP/Download + +Notable additions for the M$ release includes, the c++ client API had improvements done to make it more user friendly. The c++ broker has a windows port, acl support, SSL support, performance enhancements and clustering (experimental). + +Please note that due to c++ client API changes, it is likely that programs written against the M3 client will not compile. +You will need to change to the new API thats described at http://qpid.apache.org/docs/api/html/ + +For full details of Qpid c++ capabilities, as they currently stand, +see our project documentation at: + +http://cwiki.apache.org/confluence/pages/viewpage.action?pageId=28284 + +Please take time to go through the README file provided with the +distro to get a good understanding about build system etc. diff --git a/trunk/qpid/cpp/SSL b/trunk/qpid/cpp/SSL new file mode 100644 index 0000000000..4f80e77479 --- /dev/null +++ b/trunk/qpid/cpp/SSL @@ -0,0 +1,71 @@ + Using SSL + ========= + +SSL support for Qpid-C++, based on Mozilla's Network Security Services +library, is provided as two loadable modules: one for the client +(sslconnector.so), one for the broker (ssl.so). Either these libraries +should be present in the relevant module directory or the +'load-module' option (or QPID_LOAD_MODULE environment variable) is +used to ensure they are loaded. + +Broker side SSL Settings (note you can get these by qpidd --help +providing the ssl.so module is loaded): + +SSL Settings: + --ssl-use-export-policy Use NSS export policy + --ssl-cert-password-file PATH File containing password to use for + accessing certificate database + --ssl-cert-db PATH Path to directory containing certificate + database + --ssl-cert-name NAME (thinkpad) Name of the certificate to use + --ssl-port PORT (5671) Port on which to listen for SSL + connections + --ssl-require-client-authentication Forces clients to authenticate in order + to establish an SSL connection + + +The first four of these are also available as client options (where +they must either be in the client config file or set as environment +variables e.g. QPID_SSL_CERT_DB). + +To run either the broker or client you need ssl-cert-db-path to point +to the directory where relevant certificate and key databases can be +found. + +Certificate databases are set up using certutil (included in the +nss-tools package on fedora). See the NSS site for examples[1] and +full details[2]. + +For a simple testing you can set up a single db with a single self +signed certificate. E.g (with myhost and mydomain replaced by the +hostname and domainname of the machine in question respectively): + + mkdir test_cert_db + certutil -N -d test_cert_db -f cert.password + certutil -S -d test_cert_db -n "myhost.mydomain" \ + -s "CN=myhost.mydomain" -t "CT,," -x \ + -f cert.password -z /usr/bin/certutil + +Here cert.password is a file with a password in it that will be needed +for accessing the created db. + +The daemon can then be started with something like the following: + +./src/qpidd --auth no --load-module src/.libs/ssl.so \ + --ssl-cert-db ./test_cert_db \ + --ssl-cert-password-file ./cert.password \ + --ssl-cert-name myhost.mydomain + +then for client set: + +QPID_LOAD_MODULE=./src/.libs/sslconnector.so +QPID_SSL_CERT_DB=./test_cert_db + +and run e.g. + +./src/tests/perftest --count 10000 -P ssl --port 5671 \ + --broker myhost.mydomain + + +[1] http://www.mozilla.org/projects/security/pki/nss/ref/ssl/gtstd.html +[2] http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html diff --git a/trunk/qpid/cpp/bindings/qmf/Makefile.am b/trunk/qpid/cpp/bindings/qmf/Makefile.am new file mode 100644 index 0000000000..eebb4b94de --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/Makefile.am @@ -0,0 +1,33 @@ +# +# 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. +# + +if HAVE_SWIG + +EXTRA_DIST = qmfengine.i +SUBDIRS = tests + +if HAVE_RUBY_DEVEL +SUBDIRS += ruby +endif + +if HAVE_PYTHON_DEVEL +SUBDIRS += python +endif + +endif diff --git a/trunk/qpid/cpp/bindings/qmf/python/Makefile.am b/trunk/qpid/cpp/bindings/qmf/python/Makefile.am new file mode 100644 index 0000000000..53303c7be9 --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/python/Makefile.am @@ -0,0 +1,48 @@ +# +# 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. +# + +if HAVE_PYTHON_DEVEL + +INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)/src/qmf -I$(top_srcdir)/src -I$(top_builddir)/src + +generated_file_list = \ + qmfengine.cpp \ + qmfengine.py + +EXTRA_DIST = python.i +BUILT_SOURCES = $(generated_file_list) + +$(generated_file_list): $(srcdir)/python.i $(srcdir)/../qmfengine.i + swig -c++ -python -Wall -I/usr/include $(INCLUDES) $(QPID_CXXFLAGS) -I$(top_srcdir)/src/qmf -o qmfengine.cpp $(srcdir)/python.i + +pylibdir = $(PYTHON_LIB) + +lib_LTLIBRARIES = _qmfengine.la + +#_qmfengine_la_LDFLAGS = -avoid-version -module -shrext "$(PYTHON_SO)" +#_qmfengine_la_LDFLAGS = -avoid-version -module -shrext ".so" +_qmfengine_la_LDFLAGS = -avoid-version -module -shared +_qmfengine_la_LIBADD = $(PYTHON_LIBS) -L$(top_builddir)/src/.libs -lqpidclient $(top_builddir)/src/libqmf.la +_qmfengine_la_CXXFLAGS = $(INCLUDES) -I$(srcdir)/qmf -I$(PYTHON_INC) +nodist__qmfengine_la_SOURCES = qmfengine.cpp + +CLEANFILES = $(generated_file_list) + +endif # HAVE_PYTHON_DEVEL + diff --git a/trunk/qpid/cpp/bindings/qmf/python/python.i b/trunk/qpid/cpp/bindings/qmf/python/python.i new file mode 100644 index 0000000000..5e25d155f9 --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/python/python.i @@ -0,0 +1,143 @@ +/* + * 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. + */ + +%module qmfengine + + +/* unsigned32 Convert from Python --> C */ +%typemap(in) uint32_t { + if (PyInt_Check($input)) { + $1 = (uint32_t) PyInt_AsUnsignedLongMask($input); + } else if (PyLong_Check($input)) { + $1 = (uint32_t) PyLong_AsUnsignedLong($input); + } else { + SWIG_exception_fail(SWIG_ValueError, "unknown integer type"); + } +} + +/* unsinged32 Convert from C --> Python */ +%typemap(out) uint32_t { + $result = PyInt_FromLong((long)$1); +} + + +/* unsigned16 Convert from Python --> C */ +%typemap(in) uint16_t { + if (PyInt_Check($input)) { + $1 = (uint16_t) PyInt_AsUnsignedLongMask($input); + } else if (PyLong_Check($input)) { + $1 = (uint16_t) PyLong_AsUnsignedLong($input); + } else { + SWIG_exception_fail(SWIG_ValueError, "unknown integer type"); + } +} + +/* unsigned16 Convert from C --> Python */ +%typemap(out) uint16_t { + $result = PyInt_FromLong((long)$1); +} + + +/* signed32 Convert from Python --> C */ +%typemap(in) int32_t { + if (PyInt_Check($input)) { + $1 = (int32_t) PyInt_AsLong($input); + } else if (PyLong_Check($input)) { + $1 = (int32_t) PyLong_AsLong($input); + } else { + SWIG_exception_fail(SWIG_ValueError, "unknown integer type"); + } +} + +/* signed32 Convert from C --> Python */ +%typemap(out) int32_t { + $result = PyInt_FromLong((long)$1); +} + + +/* unsigned64 Convert from Python --> C */ +%typemap(in) uint64_t { +%#ifdef HAVE_LONG_LONG + if (PyLong_Check($input)) { + $1 = (uint64_t)PyLong_AsUnsignedLongLong($input); + } else if (PyInt_Check($input)) { + $1 = (uint64_t)PyInt_AsUnsignedLongLongMask($input); + } else +%#endif + { + SWIG_exception_fail(SWIG_ValueError, "unsupported integer size - uint64_t input too large"); + } +} + +/* unsigned64 Convert from C --> Python */ +%typemap(out) uint64_t { +%#ifdef HAVE_LONG_LONG + $result = PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)$1); +%#else + SWIG_exception_fail(SWIG_ValueError, "unsupported integer size - uint64_t output too large"); +%#endif +} + +/* signed64 Convert from Python --> C */ +%typemap(in) int64_t { +%#ifdef HAVE_LONG_LONG + if (PyLong_Check($input)) { + $1 = (int64_t)PyLong_AsLongLong($input); + } else if (PyInt_Check($input)) { + $1 = (int64_t)PyInt_AsLong($input); + } else +%#endif + { + SWIG_exception_fail(SWIG_ValueError, "unsupported integer size - int64_t input too large"); + } +} + +/* signed64 Convert from C --> Python */ +%typemap(out) int64_t { +%#ifdef HAVE_LONG_LONG + $result = PyLong_FromLongLong((PY_LONG_LONG)$1); +%#else + SWIG_exception_fail(SWIG_ValueError, "unsupported integer size - int64_t output too large"); +%#endif +} + + +/* Convert from Python --> C */ +%typemap(in) void * { + $1 = (void *)$input; +} + +/* Convert from C --> Python */ +%typemap(out) void * { + $result = (PyObject *) $1; + Py_INCREF($result); +} + +%typemap (typecheck, precedence=SWIG_TYPECHECK_UINT64) uint64_t { + $1 = PyLong_Check($input) ? 1 : 0; +} + +%typemap (typecheck, precedence=SWIG_TYPECHECK_UINT32) uint32_t { + $1 = PyInt_Check($input) ? 1 : 0; +} + + + +%include "../qmfengine.i" + diff --git a/trunk/qpid/cpp/bindings/qmf/python/qmf.py b/trunk/qpid/cpp/bindings/qmf/python/qmf.py new file mode 100644 index 0000000000..233f1c83d8 --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/python/qmf.py @@ -0,0 +1,1540 @@ +# +# 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 +import socket +import os +import logging +from threading import Thread +from threading import RLock +from threading import Condition +import qmfengine +from qmfengine import (ACCESS_READ_CREATE, ACCESS_READ_ONLY, ACCESS_READ_WRITE) +from qmfengine import (CLASS_EVENT, CLASS_OBJECT) +from qmfengine import (DIR_IN, DIR_IN_OUT, DIR_OUT) +from qmfengine import (TYPE_ABSTIME, TYPE_ARRAY, TYPE_BOOL, TYPE_DELTATIME, + TYPE_DOUBLE, TYPE_FLOAT, TYPE_INT16, TYPE_INT32, TYPE_INT64, + TYPE_INT8, TYPE_LIST, TYPE_LSTR, TYPE_MAP, TYPE_OBJECT, + TYPE_REF, TYPE_SSTR, TYPE_UINT16, TYPE_UINT32, TYPE_UINT64, + TYPE_UINT8, TYPE_UUID) +from qmfengine import (O_EQ, O_NE, O_LT, O_LE, O_GT, O_GE, O_RE_MATCH, O_RE_NOMATCH, + E_NOT, E_AND, E_OR, E_XOR) + + ##============================================================================== + ## CONNECTION + ##============================================================================== + +class ConnectionSettings(object): + #attr_reader :impl + def __init__(self, url=None): + if url: + self.impl = qmfengine.ConnectionSettings(url) + else: + self.impl = qmfengine.ConnectionSettings() + + + def set_attr(self, key, val): + if type(val) == str: + _v = qmfengine.Value(TYPE_LSTR) + _v.setString(val) + elif type(val) == int: + _v = qmfengine.Value(TYPE_UINT32) + _v.setUint(val) + elif type(val) == bool: + _v = qmfengine.Value(TYPE_BOOL) + _v.setBool(val) + else: + raise Exception("Argument error: value for attribute '%s' has unsupported type: %s" % ( key, type(val))) + + good = self.impl.setAttr(key, _v) + if not good: + raise Exception("Argument error: unsupported attribute '%s'" % key ) + + + def get_attr(self, key): + _v = self.impl.getAttr(key) + if _v.isString(): + return _v.asString() + elif _v.isUint(): + return _v.asUint() + elif _v.isBool(): + return _v.asBool() + else: + raise Exception("Argument error: value for attribute '%s' has unsupported type: %s" % ( key, str(_v.getType()))) + + + def __getattr__(self, name): + return self.get_attr(name) + + + def __setattr__(self, name, value): + if name == "impl": + return super.__setattr__(self, name, value) + return self.set_attr(name, value) + + + +class ConnectionHandler: + def conn_event_connected(self): None + def conn_event_disconnected(self, error): None + def conn_event_visit(self): None + def sess_event_session_closed(self, context, error): None + def sess_event_recv(self, context, message): None + + + +class Connection(Thread): + def __init__(self, settings): + Thread.__init__(self) + self._lock = RLock() + self.impl = qmfengine.ResilientConnection(settings.impl) + self._sockEngine, self._sock = socket.socketpair(socket.AF_UNIX, socket.SOCK_STREAM) + self.impl.setNotifyFd(self._sockEngine.fileno()) + self._new_conn_handlers = [] + self._conn_handlers_to_delete = [] + self._conn_handlers = [] + self._connected = False + self._operational = True + self.start() + + + def destroy(self, timeout=None): + logging.debug("Destroying Connection...") + self._operational = False + self.kick() + self.join(timeout) + logging.debug("... Conn Destroyed!" ) + if self.isAlive(): + logging.error("Error: Connection thread '%s' is hung..." % self.getName()) + + + def connected(self): + return self._connected + + + def kick(self): + self._sockEngine.send(".") + # self._sockEngine.flush() Not available with python? + + + def add_conn_handler(self, handler): + self._lock.acquire() + try: + self._new_conn_handlers.append(handler) + finally: + self._lock.release() + self.kick() + + + def del_conn_handler(self, handler): + self._lock.acquire() + try: + self._conn_handlers_to_delete.append(handler) + finally: + self._lock.release() + self.kick() + + + def run(self): + eventImpl = qmfengine.ResilientConnectionEvent() + new_handlers = [] + del_handlers = [] + bt_count = 0 + + while self._operational: + logging.debug("Connection thread waiting for socket data...") + self._sock.recv(1) + + self._lock.acquire() + try: + new_handlers = self._new_conn_handlers + del_handlers = self._conn_handlers_to_delete + self._new_conn_handlers = [] + self._conn_handlers_to_delete = [] + finally: + self._lock.release() + + for nh in new_handlers: + self._conn_handlers.append(nh) + if self._connected: + nh.conn_event_connected() + new_handlers = [] + + for dh in del_handlers: + if dh in self._conn_handlers: + self._conn_handlers.remove(dh) + del_handlers = [] + + valid = self.impl.getEvent(eventImpl) + while valid: + try: + if eventImpl.kind == qmfengine.ResilientConnectionEvent.CONNECTED: + logging.debug("Connection thread: CONNECTED event received.") + self._connected = True + for h in self._conn_handlers: + h.conn_event_connected() + + elif eventImpl.kind == qmfengine.ResilientConnectionEvent.DISCONNECTED: + logging.debug("Connection thread: DISCONNECTED event received.") + self._connected = False + for h in self._conn_handlers: + h.conn_event_disconnected(eventImpl.errorText) + + elif eventImpl.kind == qmfengine.ResilientConnectionEvent.SESSION_CLOSED: + logging.debug("Connection thread: SESSION_CLOSED event received.") + eventImpl.sessionContext.handler.sess_event_session_closed(eventImpl.sessionContext, eventImpl.errorText) + + elif eventImpl.kind == qmfengine.ResilientConnectionEvent.RECV: + logging.debug("Connection thread: RECV event received.") + eventImpl.sessionContext.handler.sess_event_recv(eventImpl.sessionContext, eventImpl.message) + else: + logging.debug("Connection thread received unknown event: '%s'" % str(eventImpl.kind)) + + except: + import traceback + logging.error( "Exception occurred during Connection event processing:" ) + logging.error( str(sys.exc_info()) ) + if bt_count < 2: + traceback.print_exc() + traceback.print_stack() + bt_count += 1 + + self.impl.popEvent() + valid = self.impl.getEvent(eventImpl) + + for h in self._conn_handlers: + h.conn_event_visit() + + logging.debug("Shutting down Connection thread") + + + +class Session: + def __init__(self, conn, label, handler): + self._conn = conn + self._label = label + self.handler = handler + self.handle = qmfengine.SessionHandle() + result = self._conn.impl.createSession(label, self, self.handle) + + + def destroy(self): + self._conn.impl.destroySession(self.handle) + + + + ##============================================================================== + ## OBJECTS + ##============================================================================== + +class QmfObject(object): + # attr_reader :impl, :object_class + def __init__(self, cls, kwargs={}): + self._cv = Condition() + self._sync_count = 0 + self._sync_result = None + self._allow_sets = False + if kwargs.has_key("broker"): + self._broker = kwargs["broker"] + else: + self._broker = None + if cls: + self.object_class = cls + self.impl = qmfengine.Object(self.object_class.impl) + elif kwargs.has_key("impl"): + self.impl = qmfengine.Object(kwargs["impl"]) + self.object_class = SchemaObjectClass(None, + None, + {"impl":self.impl.getClass()}) + else: + raise Exception("Argument error: required parameter ('impl') not supplied") + + + def destroy(self): + self.impl.destroy() + + + def object_id(self): + return ObjectId(self.impl.getObjectId()) + + + def set_object_id(self, oid): + self.impl.setObjectId(oid.impl) + + + def properties(self): + list = [] + for prop in self.object_class.properties: + list.append([prop, self.get_attr(prop.name())]) + return list + + + def statistics(self): + list = [] + for stat in self.object_class.statistics: + list.append([stat, self.get_attr(stat.name())]) + return list + + + def get_attr(self, name): + val = self._value(name) + vType = val.getType() + if vType == TYPE_UINT8: return val.asUint() + elif vType == TYPE_UINT16: return val.asUint() + elif vType == TYPE_UINT32: return val.asUint() + elif vType == TYPE_UINT64: return val.asUint64() + elif vType == TYPE_SSTR: return val.asString() + elif vType == TYPE_LSTR: return val.asString() + elif vType == TYPE_ABSTIME: return val.asInt64() + elif vType == TYPE_DELTATIME: return val.asUint64() + elif vType == TYPE_REF: return ObjectId(val.asObjectId()) + elif vType == TYPE_BOOL: return val.asBool() + elif vType == TYPE_FLOAT: return val.asFloat() + elif vType == TYPE_DOUBLE: return val.asDouble() + elif vType == TYPE_UUID: return val.asUuid() + elif vType == TYPE_INT8: return val.asInt() + elif vType == TYPE_INT16: return val.asInt() + elif vType == TYPE_INT32: return val.asInt() + elif vType == TYPE_INT64: return val.asInt64() + else: + # when TYPE_MAP + # when TYPE_OBJECT + # when TYPE_LIST + # when TYPE_ARRAY + logging.error( "Unsupported type for get_attr? '%s'" % str(val.getType()) ) + return None + + + def set_attr(self, name, v): + val = self._value(name) + vType = val.getType() + if vType == TYPE_UINT8: return val.setUint(v) + elif vType == TYPE_UINT16: return val.setUint(v) + elif vType == TYPE_UINT32: return val.setUint(v) + elif vType == TYPE_UINT64: return val.setUint64(v) + elif vType == TYPE_SSTR: + if v: return val.setString(v) + else: return val.setString('') + elif vType == TYPE_LSTR: + if v: return val.setString(v) + else: return val.setString('') + elif vType == TYPE_ABSTIME: return val.setInt64(v) + elif vType == TYPE_DELTATIME: return val.setUint64(v) + elif vType == TYPE_REF: return val.setObjectId(v.impl) + elif vType == TYPE_BOOL: return val.setBool(v) + elif vType == TYPE_FLOAT: return val.setFloat(v) + elif vType == TYPE_DOUBLE: return val.setDouble(v) + elif vType == TYPE_UUID: return val.setUuid(v) + elif vType == TYPE_INT8: return val.setInt(v) + elif vType == TYPE_INT16: return val.setInt(v) + elif vType == TYPE_INT32: return val.setInt(v) + elif vType == TYPE_INT64: return val.setInt64(v) + else: + # when TYPE_MAP + # when TYPE_OBJECT + # when TYPE_LIST + # when TYPE_ARRAY + logging.error("Unsupported type for get_attr? '%s'" % str(val.getType())) + return None + + + def __getitem__(self, name): + return self.get_attr(name) + + + def __setitem__(self, name, value): + self.set_attr(name, value) + + + def inc_attr(self, name, by=1): + self.set_attr(name, self.get_attr(name) + by) + + + def dec_attr(self, name, by=1): + self.set_attr(name, self.get_attr(name) - by) + + + def __setattr__(self, name, value): + # + # Ignore the internal attributes, set them normally... + # + if (name[0] == '_' or + name == 'impl' or + name == 'object_class'): + return super.__setattr__(self, name, value) + + if not self._allow_sets: + raise Exception("'Set' operations not permitted on this object") + # + # If the name matches a property name, set the value of the property. + # + # print "set name=%s" % str(name) + for prop in self.object_class.properties: + if prop.name() == name: + return self.set_attr(name, value) + # + # otherwise, check for a statistic set... + # + for stat in self.object_class.statistics: + if stat.name() == name: + return self.set_attr(name, value) + + # unrecognized name? should I raise an exception? + super.__setattr__(self, name, value) + + + def __getattr__(self, name, *args): + # + # If the name matches a property name, return the value of the property. + # + for prop in self.object_class.properties: + if prop.name() == name: + return self.get_attr(name) + # + # Do the same for statistics + # + for stat in self.object_class.statistics: + if stat.name() == name: + return self.get_attr(name) + # + # If we still haven't found a match for the name, check to see if + # it matches a method name. If so, marshall up the arguments into + # a map, and invoke the method. + # + for method in self.object_class.methods: + if method.name() == name: + argMap = self._marshall(method, args) + return lambda name, argMap : self._invokeMethod(name, argMap) + + # + # This name means nothing to us, pass it up the line to the parent + # class's handler. + # + # print "__getattr__=%s" % str(name) + super.__getattr__(self, name) + + + def _invokeMethod(self, name, argMap): + """ + Private: Helper function that invokes an object's method, and waits for the result. + """ + self._cv.acquire() + try: + timeout = 30 + self._sync_count = 1 + self.impl.invokeMethod(name, argMap, self) + if self._broker: + self._broker.conn.kick() + self._cv.wait(timeout) + if self._sync_count == 1: + raise Exception("Timed out: waiting for response to method call.") + finally: + self._cv.release() + + return self._sync_result + + + def _method_result(self, result): + """ + Called to return the result of a method call on an object + """ + self._cv.acquire(); + try: + self._sync_result = result + self._sync_count -= 1 + self._cv.notify() + finally: + self._cv.release() + + + def _marshall(schema, args): + ''' + Private: Convert a list of arguments (positional) into a Value object of type "map". + Used to create the argument parameter for an object's method invokation. + ''' + # Build a map of the method's arguments + map = qmfengine.Value(TYPE_MAP) + for arg in schema.arguments: + if arg.direction == DIR_IN or arg.direction == DIR_IN_OUT: + map.insert(arg.name, qmfengine.Value(arg.typecode)) + + # install each argument's value into the map + marshalled = Arguments(map) + idx = 0 + for arg in schema.arguments: + if arg.direction == DIR_IN or arg.direction == DIR_IN_OUT: + if args[idx]: + marshalled[arg.name] = args[idx] + idx += 1 + + return marshalled.map + + + def _value(self, name): + val = self.impl.getValue(name) + if not val: + raise Exception("Argument error: attribute named '%s' not defined for package %s, class %s" % + (name, + self.object_class.impl.getClassKey().getPackageName(), + self.object_class.impl.getClassKey().getClassName())) + return val + + + +class AgentObject(QmfObject): + def __init__(self, cls, kwargs={}): + QmfObject.__init__(self, cls, kwargs) + self._allow_sets = True + + + def destroy(self): + self.impl.destroy() + + + def set_object_id(self, oid): + self.impl.setObjectId(oid.impl) + + + +class ConsoleObject(QmfObject): + # attr_reader :current_time, :create_time, :delete_time + def __init__(self, cls, kwargs={}): + QmfObject.__init__(self, cls, kwargs) + + + def update(self): + if not self._broker: + raise Exception("No linkage to broker") + newer = self._broker.console.objects(Query({"object_id":object_id})) + if newer.size != 1: + raise Exception("Expected exactly one update for this object, %d present" % int(newer.size)) + self.merge_update(newer[0]) + + + def merge_update(self, newObject): + self.impl.merge(new_object.impl) + + + def is_deleted(self): + return self.impl.isDeleted() + + + def key(self): pass + + + +class ObjectId: + def __init__(self, impl=None): + if impl: + self.impl = impl + else: + self.impl = qmfengine.ObjectId() + self.agent_key = "%d.%d" % (self.impl.getBrokerBank(), self.impl.getAgentBank()) + + + def object_num_high(self): + return self.impl.getObjectNumHi() + + + def object_num_low(self): + return self.impl.getObjectNumLo() + + + def agent_key(self): + self.agent_key + + def __eq__(self, other): + if not isinstance(other, self.__class__): return False + return self.impl == other.impl + + def __ne__(self, other): + return not self.__eq__(other) + + def __repr__(self): + return self.impl.str() + + + +class Arguments(object): + def __init__(self, map): + self.map = map + self._by_hash = {} + key_count = self.map.keyCount() + a = 0 + while a < key_count: + self._by_hash[self.map.key(a)] = self.by_key(self.map.key(a)) + a += 1 + + + def __getitem__(self, key): + return self._by_hash[key] + + + def __setitem__(self, key, value): + self._by_hash[key] = value + self.set(key, value) + + + def __iter__(self): + return self._by_hash.__iter__ + + + def __getattr__(self, name): + if name in self._by_hash: + return self._by_hash[name] + return super.__getattr__(self, name) + + + def __setattr__(self, name, value): + # + # ignore local data members + # + if (name[0] == '_' or + name == 'map'): + return super.__setattr__(self, name, value) + + if name in self._by_hash: + self._by_hash[name] = value + return self.set(name, value) + + return super.__setattr__(self, name, value) + + + def by_key(self, key): + val = self.map.byKey(key) + vType = val.getType() + if vType == TYPE_UINT8: return val.asUint() + elif vType == TYPE_UINT16: return val.asUint() + elif vType == TYPE_UINT32: return val.asUint() + elif vType == TYPE_UINT64: return val.asUint64() + elif vType == TYPE_SSTR: return val.asString() + elif vType == TYPE_LSTR: return val.asString() + elif vType == TYPE_ABSTIME: return val.asInt64() + elif vType == TYPE_DELTATIME: return val.asUint64() + elif vType == TYPE_REF: return ObjectId(val.asObjectId()) + elif vType == TYPE_BOOL: return val.asBool() + elif vType == TYPE_FLOAT: return val.asFloat() + elif vType == TYPE_DOUBLE: return val.asDouble() + elif vType == TYPE_UUID: return val.asUuid() + elif vType == TYPE_INT8: return val.asInt() + elif vType == TYPE_INT16: return val.asInt() + elif vType == TYPE_INT32: return val.asInt() + elif vType == TYPE_INT64: return val.asInt64() + else: + # when TYPE_MAP + # when TYPE_OBJECT + # when TYPE_LIST + # when TYPE_ARRAY + logging.error( "Unsupported Type for Get? '%s'" % str(val.getType())) + return None + + + def set(self, key, value): + val = self.map.byKey(key) + vType = val.getType() + if vType == TYPE_UINT8: return val.setUint(value) + elif vType == TYPE_UINT16: return val.setUint(value) + elif vType == TYPE_UINT32: return val.setUint(value) + elif vType == TYPE_UINT64: return val.setUint64(value) + elif vType == TYPE_SSTR: + if value: + return val.setString(value) + else: + return val.setString('') + elif vType == TYPE_LSTR: + if value: + return val.setString(value) + else: + return val.setString('') + elif vType == TYPE_ABSTIME: return val.setInt64(value) + elif vType == TYPE_DELTATIME: return val.setUint64(value) + elif vType == TYPE_REF: return val.setObjectId(value.impl) + elif vType == TYPE_BOOL: return val.setBool(value) + elif vType == TYPE_FLOAT: return val.setFloat(value) + elif vType == TYPE_DOUBLE: return val.setDouble(value) + elif vType == TYPE_UUID: return val.setUuid(value) + elif vType == TYPE_INT8: return val.setInt(value) + elif vType == TYPE_INT16: return val.setInt(value) + elif vType == TYPE_INT32: return val.setInt(value) + elif vType == TYPE_INT64: return val.setInt64(value) + else: + # when TYPE_MAP + # when TYPE_OBJECT + # when TYPE_LIST + # when TYPE_ARRAY + logging.error("Unsupported Type for Set? '%s'" % str(val.getType())) + return None + + + +class MethodResponse(object): + def __init__(self, impl): + self.impl = qmfengine.MethodResponse(impl) + + + def status(self): + return self.impl.getStatus() + + + def exception(self): + return self.impl.getException() + + + def text(self): + return exception().asString() + + + def args(self): + return Arguments(self.impl.getArgs()) + + + def __getattr__(self, name): + myArgs = self.args() + return myArgs.__getattr__(name) + + + def __setattr__(self, name, value): + if name == 'impl': + return super.__setattr__(self, name, value) + + myArgs = self.args() + return myArgs.__setattr__(name, value) + + + + ##============================================================================== + ## QUERY + ##============================================================================== + + +class Query: + def __init__(self, kwargs={}): + if "impl" in kwargs: + self.impl = kwargs["impl"] + else: + package = '' + if "key" in kwargs: + # construct using SchemaClassKey: + self.impl = qmfengine.Query(kwargs["key"]) + elif "object_id" in kwargs: + self.impl = qmfengine.Query(kwargs["object_id"].impl) + else: + if "package" in kwargs: + package = kwargs["package"] + if "class" in kwargs: + self.impl = qmfengine.Query(kwargs["class"], package) + else: + raise Exception("Argument error: invalid arguments, use 'key', 'object_id' or 'class'[,'package']") + + + def package_name(self): return self.impl.getPackage() + def class_name(self): return self.impl.getClass() + def object_id(self): + _objid = self.impl.getObjectId() + if _objid: + return ObjectId(_objid) + else: + return None + + + ##============================================================================== + ## SCHEMA + ##============================================================================== + + + +class SchemaArgument: + #attr_reader :impl + def __init__(self, name, typecode, kwargs={}): + if "impl" in kwargs: + self.impl = kwargs["impl"] + else: + self.impl = qmfengine.SchemaArgument(name, typecode) + if kwargs.has_key("dir"): self.impl.setDirection(kwargs["dir"]) + if kwargs.has_key("unit"): self.impl.setUnit(kwargs["unit"]) + if kwargs.has_key("desc"): self.impl.setDesc(kwargs["desc"]) + + + def name(self): + return self.impl.getName() + + + def direction(self): + return self.impl.getDirection() + + + def typecode(self): + return self.impl.getType() + + + def __repr__(self): + return self.name() + + + +class SchemaMethod: + # attr_reader :impl, arguments + def __init__(self, name, kwargs={}): + self.arguments = [] + if "impl" in kwargs: + self.impl = kwargs["impl"] + for i in range(self.impl.getArgumentCount()): + self.arguments.append(SchemaArgument(None,None,{"impl":self.impl.getArgument(i)})) + else: + self.impl = qmfengine.SchemaMethod(name) + if kwargs.has_key("desc"): self.impl.setDesc(kwargs["desc"]) + + + def add_argument(self, arg): + self.arguments.append(arg) + self.impl.addArgument(arg.impl) + + def name(self): + return self.impl.getName() + + def __repr__(self): + return self.name() + + + +class SchemaProperty: + #attr_reader :impl + def __init__(self, name, typecode, kwargs={}): + if "impl" in kwargs: + self.impl = kwargs["impl"] + else: + self.impl = qmfengine.SchemaProperty(name, typecode) + if kwargs.has_key("access"): self.impl.setAccess(kwargs["access"]) + if kwargs.has_key("index"): self.impl.setIndex(kwargs["index"]) + if kwargs.has_key("optional"): self.impl.setOptional(kwargs["optional"]) + if kwargs.has_key("unit"): self.impl.setUnit(kwargs["unit"]) + if kwargs.has_key("desc"): self.impl.setDesc(kwargs["desc"]) + + + def name(self): + return self.impl.getName() + + def __repr__(self): + return self.name() + + + +class SchemaStatistic: + # attr_reader :impl + def __init__(self, name, typecode, kwargs={}): + if "impl" in kwargs: + self.impl = kwargs["impl"] + else: + self.impl = qmfengine.SchemaStatistic(name, typecode) + if kwargs.has_key("unit"): self.impl.setUnit(kwargs["unit"]) + if kwargs.has_key("desc"): self.impl.setDesc(kwargs["desc"]) + + + def name(self): + return self.impl.getName() + + def __repr__(self): + return self.name() + + + +class SchemaClassKey: + #attr_reader :impl + def __init__(self, i): + self.impl = i + + + def package_name(self): + return self.impl.getPackageName() + + + def class_name(self): + return self.impl.getClassName() + + def __repr__(self): + return self.impl.asString() + + + +class SchemaObjectClass: + # attr_reader :impl, :properties, :statistics, :methods + def __init__(self, package, name, kwargs={}): + self.properties = [] + self.statistics = [] + self.methods = [] + if "impl" in kwargs: + self.impl = kwargs["impl"] + + for i in range(self.impl.getPropertyCount()): + self.properties.append(SchemaProperty(None, None, {"impl":self.impl.getProperty(i)})) + + for i in range(self.impl.getStatisticCount()): + self.statistics.append(SchemaStatistic(None, None, {"impl":self.impl.getStatistic(i)})) + + for i in range(self.impl.getMethodCount()): + self.methods.append(SchemaMethod(None, {"impl":self.impl.getMethod(i)})) + else: + self.impl = qmfengine.SchemaObjectClass(package, name) + + + def add_property(self, prop): + self.properties.append(prop) + self.impl.addProperty(prop.impl) + + + def add_statistic(self, stat): + self.statistics.append(stat) + self.impl.addStatistic(stat.impl) + + + def add_method(self, meth): + self.methods.append(meth) + self.impl.addMethod(meth.impl) + + + def class_key(self): + return SchemaClassKey(self.impl.getClassKey()) + + + def package_name(self): + return self.impl.getClassKey().getPackageName() + + + def class_name(self): + return self.impl.getClassKey().getClassName() + + + +class SchemaEventClass: + # attr_reader :impl :arguments + def __init__(self, package, name, kwargs={}): + self.arguments = [] + if "impl" in kwargs: + self.impl = kwargs["impl"] + for i in range(self.impl.getArgumentCount()): + self.arguments.append(SchemaArgument(nil, nil, {"impl":self.impl.getArgument(i)})) + else: + self.impl = qmfengine.SchemaEventClass(package, name) + if kwargs.has_key("desc"): self.impl.setDesc(kwargs["desc"]) + + + def add_argument(self, arg): + self.arguments.append(arg) + self.impl.addArgument(arg.impl) + + + def name(self): + return self.impl.getClassKey().getClassName() + + + ##============================================================================== + ## CONSOLE + ##============================================================================== + + + +class ConsoleHandler: + def agent_added(self, agent): pass + def agent_deleted(self, agent): pass + def new_package(self, package): pass + def new_class(self, class_key): pass + def object_update(self, obj, hasProps, hasStats): pass + def event_received(self, event): pass + def agent_heartbeat(self, agent, timestamp): pass + def method_response(self, resp): pass + def broker_info(self, broker): pass + + + +class Console(Thread): + # attr_reader :impl + def __init__(self, handler=None, kwargs={}): + Thread.__init__(self) + self._handler = handler + self.impl = qmfengine.Console() + self._event = qmfengine.ConsoleEvent() + self._broker_list = [] + self._cv = Condition() + self._sync_count = 0 + self._sync_result = None + self._select = {} + self._cb_cond = Condition() + self._operational = True + self.start() + + + def destroy(self, timeout=None): + logging.debug("Destroying Console...") + self._operational = False + self.start_console_events() # wake thread up + self.join(timeout) + logging.debug("... Console Destroyed!") + if self.isAlive(): + logging.error( "Console thread '%s' is hung..." % self.getName() ) + + + def add_connection(self, conn): + broker = Broker(self, conn) + self._cv.acquire() + try: + self._broker_list.append(broker) + finally: + self._cv.release() + return broker + + + def del_connection(self, broker): + logging.debug("shutting down broker...") + broker.shutdown() + logging.debug("...broker down.") + self._cv.acquire() + try: + self._broker_list.remove(broker) + finally: + self._cv.release() + logging.debug("del_connection() finished") + + + def packages(self): + plist = [] + for i in range(self.impl.packageCount()): + plist.append(self.impl.getPackageName(i)) + return plist + + + def classes(self, package, kind=CLASS_OBJECT): + clist = [] + for i in range(self.impl.classCount(package)): + key = self.impl.getClass(package, i) + class_kind = self.impl.getClassKind(key) + if class_kind == kind: + if kind == CLASS_OBJECT: + clist.append(SchemaObjectClass(None, None, {"impl":self.impl.getObjectClass(key)})) + elif kind == CLASS_EVENT: + clist.append(SchemaEventClass(None, None, {"impl":self.impl.getEventClass(key)})) + return clist + + + def bind_package(self, package): + return self.impl.bindPackage(package) + + + def bind_class(self, kwargs = {}): + if "key" in kwargs: + self.impl.bindClass(kwargs["key"]) + elif "package" in kwargs: + package = kwargs["package"] + if "class" in kwargs: + self.impl.bindClass(package, kwargs["class"]) + else: + self.impl.bindClass(package) + else: + raise Exception("Argument error: invalid arguments, use 'key' or 'package'[,'class']") + + + def agents(self, broker=None): + blist = [] + if broker: + blist.append(broker) + else: + self._cv.acquire() + try: + # copy while holding lock + blist = self._broker_list[:] + finally: + self._cv.release() + + agents = [] + for b in blist: + for idx in range(b.impl.agentCount()): + agents.append(AgentProxy(b.impl.getAgent(idx), b)) + + return agents + + + def objects(self, query, kwargs = {}): + timeout = 30 + agent = None + temp_args = kwargs.copy() + if type(query) == type({}): + temp_args.update(query) + + if "_timeout" in temp_args: + timeout = temp_args["_timeout"] + temp_args.pop("_timeout") + + if "_agent" in temp_args: + agent = temp_args["_agent"] + temp_args.pop("_agent") + + if type(query) == type({}): + query = Query(temp_args) + + self._select = {} + for k in temp_args.iterkeys(): + if type(k) == str: + self._select[k] = temp_args[k] + + self._cv.acquire() + try: + self._sync_count = 1 + self._sync_result = [] + broker = self._broker_list[0] + broker.send_query(query.impl, None, agent) + self._cv.wait(timeout) + if self._sync_count == 1: + raise Exception("Timed out: waiting for query response") + finally: + self._cv.release() + + return self._sync_result + + + def object(self, query, kwargs = {}): + ''' + Return one and only one object or None. + ''' + objs = objects(query, kwargs) + if len(objs) == 1: + return objs[0] + else: + return None + + + def first_object(self, query, kwargs = {}): + ''' + Return the first of potentially many objects. + ''' + objs = objects(query, kwargs) + if objs: + return objs[0] + else: + return None + + + # Check the object against select to check for a match + def _select_match(self, object): + schema_props = object.properties() + for key in self._select.iterkeys(): + for prop in schema_props: + if key == p[0].name() and self._select[key] != p[1]: + return False + return True + + + def _get_result(self, list, context): + ''' + Called by Broker proxy to return the result of a query. + ''' + self._cv.acquire() + try: + for item in list: + if self._select_match(item): + self._sync_result.append(item) + self._sync_count -= 1 + self._cv.notify() + finally: + self._cv.release() + + + def start_sync(self, query): pass + + + def touch_sync(self, sync): pass + + + def end_sync(self, sync): pass + + + def run(self): + while self._operational: + self._cb_cond.acquire() + try: + self._cb_cond.wait(1) + while self._do_console_events(): + pass + finally: + self._cb_cond.release() + logging.debug("Shutting down Console thread") + + + def start_console_events(self): + self._cb_cond.acquire() + try: + self._cb_cond.notify() + finally: + self._cb_cond.release() + + + def _do_console_events(self): + ''' + Called by the Console thread to poll for events. Passes the events + onto the ConsoleHandler associated with this Console. Is called + periodically, but can also be kicked by Console.start_console_events(). + ''' + count = 0 + valid = self.impl.getEvent(self._event) + while valid: + count += 1 + try: + if self._event.kind == qmfengine.ConsoleEvent.AGENT_ADDED: + logging.debug("Console Event AGENT_ADDED received") + if self._handler: + self._handler.agent_added(AgentProxy(self._event.agent, None)) + elif self._event.kind == qmfengine.ConsoleEvent.AGENT_DELETED: + logging.debug("Console Event AGENT_DELETED received") + if self._handler: + self._handler.agent_deleted(AgentProxy(self._event.agent, None)) + elif self._event.kind == qmfengine.ConsoleEvent.NEW_PACKAGE: + logging.debug("Console Event NEW_PACKAGE received") + if self._handler: + self._handler.new_package(self._event.name) + elif self._event.kind == qmfengine.ConsoleEvent.NEW_CLASS: + logging.debug("Console Event NEW_CLASS received") + if self._handler: + self._handler.new_class(SchemaClassKey(self._event.classKey)) + elif self._event.kind == qmfengine.ConsoleEvent.OBJECT_UPDATE: + logging.debug("Console Event OBJECT_UPDATE received") + if self._handler: + self._handler.object_update(ConsoleObject(None, {"impl":self._event.object}), + self._event.hasProps, self._event.hasStats) + elif self._event.kind == qmfengine.ConsoleEvent.EVENT_RECEIVED: + logging.debug("Console Event EVENT_RECEIVED received") + elif self._event.kind == qmfengine.ConsoleEvent.AGENT_HEARTBEAT: + logging.debug("Console Event AGENT_HEARTBEAT received") + if self._handler: + self._handler.agent_heartbeat(AgentProxy(self._event.agent, None), self._event.timestamp) + elif self._event.kind == qmfengine.ConsoleEvent.METHOD_RESPONSE: + logging.debug("Console Event METHOD_RESPONSE received") + else: + logging.debug("Console thread received unknown event: '%s'" % str(self._event.kind)) + except e: + print "Exception caught in callback thread:", e + self.impl.popEvent() + valid = self.impl.getEvent(self._event) + return count + + + +class AgentProxy: + # attr_reader :broker + def __init__(self, impl, broker): + self.impl = impl + self.broker = broker + self.key = "%d.%d" % (self.impl.getBrokerBank(), self.impl.getAgentBank()) + + + def label(self): + return self.impl.getLabel() + + + def key(self): + return self.key + + +class Broker(ConnectionHandler): + # attr_reader :impl :conn, :console, :broker_bank + def __init__(self, console, conn): + self.broker_bank = 1 + self.console = console + self.conn = conn + self._session = None + self._cv = Condition() + self._stable = None + self._event = qmfengine.BrokerEvent() + self._xmtMessage = qmfengine.Message() + self.impl = qmfengine.BrokerProxy(self.console.impl) + self.console.impl.addConnection(self.impl, self) + self.conn.add_conn_handler(self) + self._operational = True + + + def shutdown(self): + logging.debug("broker.shutdown() called.") + self.console.impl.delConnection(self.impl) + self.conn.del_conn_handler(self) + if self._session: + self.impl.sessionClosed() + logging.debug("broker.shutdown() sessionClosed done.") + self._session.destroy() + logging.debug("broker.shutdown() session destroy done.") + self._session = None + self._operational = False + logging.debug("broker.shutdown() done.") + + + def wait_for_stable(self, timeout = None): + self._cv.acquire() + try: + if self._stable: + return + if timeout: + self._cv.wait(timeout) + if not self._stable: + raise Exception("Timed out: waiting for broker connection to become stable") + else: + while not self._stable: + self._cv.wait() + finally: + self._cv.release() + + + def send_query(self, query, ctx, agent): + agent_impl = None + if agent: + agent_impl = agent.impl + self.impl.sendQuery(query, ctx, agent_impl) + self.conn.kick() + + + def _do_broker_events(self): + count = 0 + valid = self.impl.getEvent(self._event) + while valid: + count += 1 + if self._event.kind == qmfengine.BrokerEvent.BROKER_INFO: + logging.debug("Broker Event BROKER_INFO received"); + elif self._event.kind == qmfengine.BrokerEvent.DECLARE_QUEUE: + logging.debug("Broker Event DECLARE_QUEUE received"); + self.conn.impl.declareQueue(self._session.handle, self._event.name) + elif self._event.kind == qmfengine.BrokerEvent.DELETE_QUEUE: + logging.debug("Broker Event DELETE_QUEUE received"); + self.conn.impl.deleteQueue(self._session.handle, self._event.name) + elif self._event.kind == qmfengine.BrokerEvent.BIND: + logging.debug("Broker Event BIND received"); + self.conn.impl.bind(self._session.handle, self._event.exchange, self._event.name, self._event.bindingKey) + elif self._event.kind == qmfengine.BrokerEvent.UNBIND: + logging.debug("Broker Event UNBIND received"); + self.conn.impl.unbind(self._session.handle, self._event.exchange, self._event.name, self._event.bindingKey) + elif self._event.kind == qmfengine.BrokerEvent.SETUP_COMPLETE: + logging.debug("Broker Event SETUP_COMPLETE received"); + self.impl.startProtocol() + elif self._event.kind == qmfengine.BrokerEvent.STABLE: + logging.debug("Broker Event STABLE received"); + self._cv.acquire() + try: + self._stable = True + self._cv.notify() + finally: + self._cv.release() + elif self._event.kind == qmfengine.BrokerEvent.QUERY_COMPLETE: + result = [] + for idx in range(self._event.queryResponse.getObjectCount()): + result.append(ConsoleObject(None, {"impl":self._event.queryResponse.getObject(idx), "broker":self})) + self.console._get_result(result, self._event.context) + elif self._event.kind == qmfengine.BrokerEvent.METHOD_RESPONSE: + obj = self._event.context + obj._method_result(MethodResponse(self._event.methodResponse())) + + self.impl.popEvent() + valid = self.impl.getEvent(self._event) + + return count + + + def _do_broker_messages(self): + count = 0 + valid = self.impl.getXmtMessage(self._xmtMessage) + while valid: + count += 1 + logging.debug("Broker: sending msg on connection") + self.conn.impl.sendMessage(self._session.handle, self._xmtMessage) + self.impl.popXmt() + valid = self.impl.getXmtMessage(self._xmtMessage) + + return count + + + def _do_events(self): + while True: + self.console.start_console_events() + bcnt = self._do_broker_events() + mcnt = self._do_broker_messages() + if bcnt == 0 and mcnt == 0: + break; + + + def conn_event_connected(self): + logging.debug("Broker: Connection event CONNECTED") + self._session = Session(self.conn, "qmfc-%s.%d" % (socket.gethostname(), os.getpid()), self) + self.impl.sessionOpened(self._session.handle) + self._do_events() + + + def conn_event_disconnected(self, error): + logging.debug("Broker: Connection event DISCONNECTED") + pass + + + def conn_event_visit(self): + self._do_events() + + + def sess_event_session_closed(self, context, error): + logging.debug("Broker: Session event CLOSED") + self.impl.sessionClosed() + + + def sess_event_recv(self, context, message): + logging.debug("Broker: Session event MSG_RECV") + if not self._operational: + logging.warning("Unexpected session event message received by Broker proxy: context='%s'" % str(context)) + self.impl.handleRcvMessage(message) + self._do_events() + + + + ##============================================================================== + ## AGENT + ##============================================================================== + + + +class AgentHandler: + def get_query(self, context, query, userId): None + def method_call(self, context, name, object_id, args, userId): None + + + +class Agent(ConnectionHandler): + def __init__(self, handler, label=""): + if label == "": + self._agentLabel = "rb-%s.%d" % (socket.gethostname(), os.getpid()) + else: + self._agentLabel = label + self._conn = None + self._handler = handler + self.impl = qmfengine.Agent(self._agentLabel) + self._event = qmfengine.AgentEvent() + self._xmtMessage = qmfengine.Message() + + + def set_connection(self, conn): + self._conn = conn + self._conn.add_conn_handler(self) + + + def register_class(self, cls): + self.impl.registerClass(cls.impl) + + + def alloc_object_id(self, low = 0, high = 0): + return ObjectId(self.impl.allocObjectId(low, high)) + + + def query_response(self, context, obj): + self.impl.queryResponse(context, obj.impl) + + + def query_complete(self, context): + self.impl.queryComplete(context) + + + def method_response(self, context, status, text, arguments): + self.impl.methodResponse(context, status, text, arguments.map) + + + def do_agent_events(self): + count = 0 + valid = self.impl.getEvent(self._event) + while valid: + count += 1 + if self._event.kind == qmfengine.AgentEvent.GET_QUERY: + self._handler.get_query(self._event.sequence, + Query({"impl":self._event.query}), + self._event.authUserId) + + elif self._event.kind == qmfengine.AgentEvent.START_SYNC: + pass + elif self._event.kind == qmfengine.AgentEvent.END_SYNC: + pass + elif self._event.kind == qmfengine.AgentEvent.METHOD_CALL: + args = Arguments(self._event.arguments) + self._handler.method_call(self._event.sequence, self._event.name, + ObjectId(self._event.objectId), + args, self._event.authUserId) + + elif self._event.kind == qmfengine.AgentEvent.DECLARE_QUEUE: + self._conn.impl.declareQueue(self._session.handle, self._event.name) + + elif self._event.kind == qmfengine.AgentEvent.DELETE_QUEUE: + self._conn.impl.deleteQueue(self._session.handle, self._event.name) + + elif self._event.kind == qmfengine.AgentEvent.BIND: + self._conn.impl.bind(self._session.handle, self._event.exchange, + self._event.name, self._event.bindingKey) + + elif self._event.kind == qmfengine.AgentEvent.UNBIND: + self._conn.impl.unbind(self._session.handle, self._event.exchange, + self._event.name, self._event.bindingKey) + + elif self._event.kind == qmfengine.AgentEvent.SETUP_COMPLETE: + self.impl.startProtocol() + + self.impl.popEvent() + valid = self.impl.getEvent(self._event) + return count + + + def do_agent_messages(self): + count = 0 + valid = self.impl.getXmtMessage(self._xmtMessage) + while valid: + count += 1 + self._conn.impl.sendMessage(self._session.handle, self._xmtMessage) + self.impl.popXmt() + valid = self.impl.getXmtMessage(self._xmtMessage) + return count + + + def do_events(self): + while True: + ecnt = self.do_agent_events() + mcnt = self.do_agent_messages() + if ecnt == 0 and mcnt == 0: + break + + + def conn_event_connected(self): + logging.debug("Agent Connection Established...") + self._session = Session(self._conn, + "qmfa-%s.%d" % (socket.gethostname(), os.getpid()), + self) + self.impl.newSession() + self.do_events() + + + def conn_event_disconnected(self, error): + logging.debug("Agent Connection Lost") + pass + + + def conn_event_visit(self): + self.do_events() + + + def sess_event_session_closed(self, context, error): + logging.debug("Agent Session Lost") + pass + + + def sess_event_recv(self, context, message): + self.impl.handleRcvMessage(message) + self.do_events() + + diff --git a/trunk/qpid/cpp/bindings/qmf/qmfengine.i b/trunk/qpid/cpp/bindings/qmf/qmfengine.i new file mode 100644 index 0000000000..3477215254 --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/qmfengine.i @@ -0,0 +1,58 @@ +/* + * 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. + */ + +%{ + +#include "qmf/engine/Agent.h" +#include "qmf/engine/Console.h" +#include "qmf/engine/ResilientConnection.h" + +%} + +%include +%include +%include +%include +%include +%include +%include +%include +%include +%include +%include +%include + + +%inline { + +using namespace std; +using namespace qmf::engine; + +namespace qmf { +namespace engine { + +} +} +} + + +%{ + +%}; + diff --git a/trunk/qpid/cpp/bindings/qmf/ruby/Makefile.am b/trunk/qpid/cpp/bindings/qmf/ruby/Makefile.am new file mode 100644 index 0000000000..34096da9ee --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/ruby/Makefile.am @@ -0,0 +1,44 @@ +# +# 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. +# + +if HAVE_RUBY_DEVEL + +INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)/src -I$(top_builddir)/src + +EXTRA_DIST = ruby.i +BUILT_SOURCES = qmfengine.cpp + +rubylibdir = $(RUBY_LIB) + +dist_rubylib_DATA = qmf.rb + +qmfengine.cpp: $(srcdir)/ruby.i $(srcdir)/../qmfengine.i + $(SWIG) -ruby -c++ -Wall -I/usr/include $(INCLUDES) $(QPID_CXXFLAGS) -o qmfengine.cpp $(srcdir)/ruby.i + +rubylibarchdir = $(RUBY_LIB_ARCH) +rubylibarch_LTLIBRARIES = qmfengine.la + +qmfengine_la_LDFLAGS = -avoid-version -module -shrext ".$(RUBY_DLEXT)" +qmfengine_la_LIBADD = $(RUBY_LIBS) -L$(top_builddir)/src/.libs -lqpidclient $(top_builddir)/src/libqmfengine.la +qmfengine_la_CXXFLAGS = $(INCLUDES) -I$(RUBY_INC) -I$(RUBY_INC_ARCH) +nodist_qmfengine_la_SOURCES = qmfengine.cpp + +CLEANFILES = qmfengine.cpp + +endif # HAVE_RUBY_DEVEL diff --git a/trunk/qpid/cpp/bindings/qmf/ruby/qmf.rb b/trunk/qpid/cpp/bindings/qmf/ruby/qmf.rb new file mode 100644 index 0000000000..857dd64aeb --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/ruby/qmf.rb @@ -0,0 +1,1343 @@ +# +# 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. +# + +require 'qmfengine' +require 'thread' +require 'socket' +require 'monitor' + +module Qmf + + # Pull all the TYPE_* constants into Qmf namespace. Maybe there's an easier way? + Qmfengine.constants.each do |c| + if c.index('TYPE_') == 0 or c.index('ACCESS_') == 0 or c.index('DIR_') == 0 or c.index('CLASS_') == 0 + const_set(c, Qmfengine.const_get(c)) + end + end + + ##============================================================================== + ## CONNECTION + ##============================================================================== + + class ConnectionSettings + attr_reader :impl + + def initialize(url = nil) + if url + @impl = Qmfengine::ConnectionSettings.new(url) + else + @impl = Qmfengine::ConnectionSettings.new() + end + end + + def set_attr(key, val) + if val.class == String + v = Qmfengine::Value.new(TYPE_LSTR) + v.setString(val) + elsif val.class == TrueClass or val.class == FalseClass + v = Qmfengine::Value.new(TYPE_BOOL) + v.setBool(val) + elsif val.class == Fixnum + v = Qmfengine::Value.new(TYPE_UINT32) + v.setUint(val) + else + raise ArgumentError, "Value for attribute '#{key}' has unsupported type: #{val.class}" + end + + good = @impl.setAttr(key, v) + raise "Invalid attribute '#{key}'" unless good + end + + def method_missing(name_in, *args) + name = name_in.to_s + if name[name.length - 1] == 61 + attr = name[0..name.length - 2] + set_attr(attr, args[0]) + return + end + + super.method_missing(name_in, args) + end + end + + class ConnectionHandler + def conn_event_connected(); end + def conn_event_disconnected(error); end + def conn_event_visit(); end + def sess_event_session_closed(context, error); end + def sess_event_recv(context, message); end + end + + class Connection + include MonitorMixin + + attr_reader :impl + + def initialize(settings) + super() + @impl = Qmfengine::ResilientConnection.new(settings.impl) + @sockEngine, @sock = Socket::socketpair(Socket::PF_UNIX, Socket::SOCK_STREAM, 0) + @impl.setNotifyFd(@sockEngine.fileno) + @new_conn_handlers = [] + @conn_handlers_to_delete = [] + @conn_handlers = [] + @connected = nil + + @thread = Thread.new do + run + end + end + + def connected? + @connected + end + + def kick + @sockEngine.write(".") + @sockEngine.flush + end + + def add_conn_handler(handler) + synchronize do + @new_conn_handlers << handler + end + kick + end + + def del_conn_handler(handler) + synchronize do + @conn_handlers_to_delete << handler + end + kick + end + + def run() + eventImpl = Qmfengine::ResilientConnectionEvent.new + new_handlers = nil + del_handlers = nil + bt_count = 0 + + while :true + @sock.read(1) + + synchronize do + new_handlers = @new_conn_handlers + del_handlers = @conn_handlers_to_delete + @new_conn_handlers = [] + @conn_handlers_to_delete = [] + end + + new_handlers.each do |nh| + @conn_handlers << nh + nh.conn_event_connected() if @connected + end + new_handlers = nil + + del_handlers.each do |dh| + d = @conn_handlers.delete(dh) + end + del_handlers = nil + + valid = @impl.getEvent(eventImpl) + while valid + begin + case eventImpl.kind + when Qmfengine::ResilientConnectionEvent::CONNECTED + @connected = :true + @conn_handlers.each { |h| h.conn_event_connected() } + when Qmfengine::ResilientConnectionEvent::DISCONNECTED + @connected = nil + @conn_handlers.each { |h| h.conn_event_disconnected(eventImpl.errorText) } + when Qmfengine::ResilientConnectionEvent::SESSION_CLOSED + eventImpl.sessionContext.handler.sess_event_session_closed(eventImpl.sessionContext, eventImpl.errorText) + when Qmfengine::ResilientConnectionEvent::RECV + eventImpl.sessionContext.handler.sess_event_recv(eventImpl.sessionContext, eventImpl.message) + end + rescue Exception => ex + puts "Event Exception: #{ex}" + if bt_count < 2 + puts ex.backtrace + bt_count += 1 + end + end + @impl.popEvent + valid = @impl.getEvent(eventImpl) + end + @conn_handlers.each { |h| h.conn_event_visit } + end + end + end + + class Session + attr_reader :handle, :handler + + def initialize(conn, label, handler) + @conn = conn + @label = label + @handler = handler + @handle = Qmfengine::SessionHandle.new + result = @conn.impl.createSession(label, self, @handle) + end + + def destroy() + @conn.impl.destroySession(@handle) + end + end + + ##============================================================================== + ## OBJECTS + ##============================================================================== + + class QmfObject + include MonitorMixin + attr_reader :impl, :object_class + def initialize(cls, kwargs={}) + super() + @cv = new_cond + @sync_count = 0 + @sync_result = nil + @allow_sets = :false + @broker = kwargs[:broker] if kwargs.include?(:broker) + + if cls: + @object_class = cls + @impl = Qmfengine::Object.new(@object_class.impl) + elsif kwargs.include?(:impl) + @impl = Qmfengine::Object.new(kwargs[:impl]) + @object_class = SchemaObjectClass.new(nil, nil, :impl => @impl.getClass) + end + end + + def object_id + return ObjectId.new(@impl.getObjectId) + end + + def properties + list = [] + @object_class.properties.each do |prop| + list << [prop, get_attr(prop.name)] + end + return list + end + + def statistics + list = [] + @object_class.statistics.each do |stat| + list << [stat, get_attr(stat.name)] + end + return list + end + + def get_attr(name) + val = value(name) + case val.getType + when TYPE_UINT8, TYPE_UINT16, TYPE_UINT32 then val.asUint + when TYPE_UINT64 then val.asUint64 + when TYPE_SSTR, TYPE_LSTR then val.asString + when TYPE_ABSTIME then val.asInt64 + when TYPE_DELTATIME then val.asUint64 + when TYPE_REF then ObjectId.new(val.asObjectId) + when TYPE_BOOL then val.asBool + when TYPE_FLOAT then val.asFloat + when TYPE_DOUBLE then val.asDouble + when TYPE_UUID then val.asUuid + when TYPE_INT8, TYPE_INT16, TYPE_INT32 then val.asInt + when TYPE_INT64 then val.asInt64 + when TYPE_MAP + when TYPE_OBJECT + when TYPE_LIST + when TYPE_ARRAY + end + end + + def set_attr(name, v) + val = value(name) + case val.getType + when TYPE_UINT8, TYPE_UINT16, TYPE_UINT32 then val.setUint(v) + when TYPE_UINT64 then val.setUint64(v) + when TYPE_SSTR, TYPE_LSTR then v ? val.setString(v) : val.setString('') + when TYPE_ABSTIME then val.setInt64(v) + when TYPE_DELTATIME then val.setUint64(v) + when TYPE_REF then val.setObjectId(v.impl) + when TYPE_BOOL then v ? val.setBool(v) : val.setBool(0) + when TYPE_FLOAT then val.setFloat(v) + when TYPE_DOUBLE then val.setDouble(v) + when TYPE_UUID then val.setUuid(v) + when TYPE_INT8, TYPE_INT16, TYPE_INT32 then val.setInt(v) + when TYPE_INT64 then val.setInt64(v) + when TYPE_MAP + when TYPE_OBJECT + when TYPE_LIST + when TYPE_ARRAY + end + end + + def [](name) + get_attr(name) + end + + def []=(name, value) + set_attr(name, value) + end + + def inc_attr(name, by=1) + set_attr(name, get_attr(name) + by) + end + + def dec_attr(name, by=1) + set_attr(name, get_attr(name) - by) + end + + def method_missing(name_in, *args) + # + # Convert the name to a string and determine if it represents an + # attribute assignment (i.e. "attr=") + # + name = name_in.to_s + attr_set = (name[name.length - 1] == 61) + name = name[0..name.length - 2] if attr_set + raise "Sets not permitted on this object" if attr_set && !@allow_sets + + # + # If the name matches a property name, set or return the value of the property. + # + @object_class.properties.each do |prop| + if prop.name == name + if attr_set + return set_attr(name, args[0]) + else + return get_attr(name) + end + end + end + + # + # Do the same for statistics + # + @object_class.statistics.each do |stat| + if stat.name == name + if attr_set + return set_attr(name, args[0]) + else + return get_attr(name) + end + end + end + + # + # If we still haven't found a match for the name, check to see if + # it matches a method name. If so, marshall the arguments and invoke + # the method. + # + @object_class.methods.each do |method| + if method.name == name + raise "Sets not permitted on methods" if attr_set + timeout = 30 + synchronize do + @sync_count = 1 + @impl.invokeMethod(name, _marshall(method, args), self) + @broker.conn.kick if @broker + unless @cv.wait(timeout) { @sync_count == 0 } + raise "Timed out waiting for response" + end + end + + return @sync_result + end + end + + # + # This name means nothing to us, pass it up the line to the parent + # class's handler. + # + super.method_missing(name_in, args) + end + + def _method_result(result) + synchronize do + @sync_result = result + @sync_count -= 1 + @cv.signal + end + end + + # + # Convert a Ruby array of arguments (positional) into a Value object of type "map". + # + private + def _marshall(schema, args) + map = Qmfengine::Value.new(TYPE_MAP) + schema.arguments.each do |arg| + if arg.direction == DIR_IN || arg.direction == DIR_IN_OUT + map.insert(arg.name, Qmfengine::Value.new(arg.typecode)) + end + end + + marshalled = Arguments.new(map) + idx = 0 + schema.arguments.each do |arg| + if arg.direction == DIR_IN || arg.direction == DIR_IN_OUT + marshalled[arg.name] = args[idx] unless args[idx] == nil + idx += 1 + end + end + + return marshalled.map + end + + private + def value(name) + val = @impl.getValue(name.to_s) + if val.nil? + raise ArgumentError, "Attribute '#{name}' not defined for class #{@object_class.impl.getClassKey.getPackageName}:#{@object_class.impl.getClassKey.getClassName}" + end + return val + end + end + + class AgentObject < QmfObject + def initialize(cls, kwargs={}) + super(cls, kwargs) + @allow_sets = :true + end + + def destroy + @impl.destroy + end + + def set_object_id(oid) + @impl.setObjectId(oid.impl) + end + end + + class ConsoleObject < QmfObject + attr_reader :current_time, :create_time, :delete_time + + def initialize(cls, kwargs={}) + super(cls, kwargs) + end + + def update() + raise "No linkage to broker" unless @broker + newer = @broker.console.objects(Query.new(:object_id => object_id)) + raise "Expected exactly one update for this object" unless newer.size == 1 + merge_update(newer[0]) + end + + def merge_update(new_object) + @impl.merge(new_object.impl) + end + + def deleted?() + @impl.isDeleted + end + + def key() + end + end + + class ObjectId + attr_reader :impl, :agent_key + def initialize(impl=nil) + if impl + @impl = Qmfengine::ObjectId.new(impl) + else + @impl = Qmfengine::ObjectId.new + end + @agent_key = "#{@impl.getBrokerBank}.#{@impl.getAgentBank}" + end + + def object_num_high + @impl.getObjectNumHi + end + + def object_num_low + @impl.getObjectNumLo + end + + def ==(other) + return @impl == other.impl + end + + def to_s + @impl.str + end + end + + class Arguments + attr_reader :map + def initialize(map) + @map = map + @by_hash = {} + key_count = @map.keyCount + a = 0 + while a < key_count + @by_hash[@map.key(a)] = by_key(@map.key(a)) + a += 1 + end + end + + def [] (key) + return @by_hash[key] + end + + def []= (key, value) + @by_hash[key] = value + set(key, value) + end + + def each + @by_hash.each { |k, v| yield(k, v) } + end + + def method_missing(name, *args) + if @by_hash.include?(name.to_s) + return @by_hash[name.to_s] + end + + super.method_missing(name, args) + end + + def by_key(key) + val = @map.byKey(key) + case val.getType + when TYPE_UINT8, TYPE_UINT16, TYPE_UINT32 then val.asUint + when TYPE_UINT64 then val.asUint64 + when TYPE_SSTR, TYPE_LSTR then val.asString + when TYPE_ABSTIME then val.asInt64 + when TYPE_DELTATIME then val.asUint64 + when TYPE_REF then ObjectId.new(val.asObjectId) + when TYPE_BOOL then val.asBool + when TYPE_FLOAT then val.asFloat + when TYPE_DOUBLE then val.asDouble + when TYPE_UUID then val.asUuid + when TYPE_INT8, TYPE_INT16, TYPE_INT32 then val.asInt + when TYPE_INT64 then val.asInt64 + when TYPE_MAP + when TYPE_OBJECT + when TYPE_LIST + when TYPE_ARRAY + end + end + + def set(key, value) + val = @map.byKey(key) + case val.getType + when TYPE_UINT8, TYPE_UINT16, TYPE_UINT32 then val.setUint(value) + when TYPE_UINT64 then val.setUint64(value) + when TYPE_SSTR, TYPE_LSTR then value ? val.setString(value) : val.setString('') + when TYPE_ABSTIME then val.setInt64(value) + when TYPE_DELTATIME then val.setUint64(value) + when TYPE_REF then val.setObjectId(value.impl) + when TYPE_BOOL then value ? val.setBool(value) : val.setBool(0) + when TYPE_FLOAT then val.setFloat(value) + when TYPE_DOUBLE then val.setDouble(value) + when TYPE_UUID then val.setUuid(value) + when TYPE_INT8, TYPE_INT16, TYPE_INT32 then val.setInt(value) + when TYPE_INT64 then val.setInt64(value) + when TYPE_MAP + when TYPE_OBJECT + when TYPE_LIST + when TYPE_ARRAY + end + end + end + + class MethodResponse + def initialize(impl) + @impl = Qmfengine::MethodResponse.new(impl) + end + + def status + @impl.getStatus + end + + def exception + @impl.getException + end + + def text + exception.asString + end + + def args + Arguments.new(@impl.getArgs) + end + + def method_missing(name, *extra_args) + args.__send__(name, extra_args) + end + end + + ##============================================================================== + ## QUERY + ##============================================================================== + + class Query + attr_reader :impl + def initialize(kwargs = {}) + if kwargs.include?(:impl) + @impl = Qmfengine::Query.new(kwargs[:impl]) + else + package = '' + if kwargs.include?(:key) + @impl = Qmfengine::Query.new(kwargs[:key]) + elsif kwargs.include?(:object_id) + @impl = Qmfengine::Query.new(kwargs[:object_id].impl) + else + package = kwargs[:package] if kwargs.include?(:package) + if kwargs.include?(:class) + @impl = Qmfengine::Query.new(kwargs[:class], package) + else + raise ArgumentError, "Invalid arguments, use :key, :object_id or :class[,:package]" + end + end + end + end + + def package_name + @impl.getPackage + end + + def class_name + @impl.getClass + end + + def object_id + objid = @impl.getObjectId + if objid.class == NilClass + return nil + end + return ObjectId.new(objid) + end + end + + ##============================================================================== + ## SCHEMA + ##============================================================================== + + class SchemaArgument + attr_reader :impl + def initialize(name, typecode, kwargs={}) + if kwargs.include?(:impl) + @impl = kwargs[:impl] + else + @impl = Qmfengine::SchemaArgument.new(name, typecode) + @impl.setDirection(kwargs[:dir]) if kwargs.include?(:dir) + @impl.setUnit(kwargs[:unit]) if kwargs.include?(:unit) + @impl.setDesc(kwargs[:desc]) if kwargs.include?(:desc) + end + end + + def name + @impl.getName + end + + def direction + @impl.getDirection + end + + def typecode + @impl.getType + end + + def to_s + name + end + end + + class SchemaMethod + attr_reader :impl, :arguments + def initialize(name, kwargs={}) + @arguments = [] + if kwargs.include?(:impl) + @impl = kwargs[:impl] + arg_count = @impl.getArgumentCount + for i in 0...arg_count + @arguments << SchemaArgument.new(nil, nil, :impl => @impl.getArgument(i)) + end + else + @impl = Qmfengine::SchemaMethod.new(name) + @impl.setDesc(kwargs[:desc]) if kwargs.include?(:desc) + end + end + + def add_argument(arg) + @arguments << arg + @impl.addArgument(arg.impl) + end + + def name + @impl.getName + end + + def to_s + name + end + end + + class SchemaProperty + attr_reader :impl + def initialize(name, typecode, kwargs={}) + if kwargs.include?(:impl) + @impl = kwargs[:impl] + else + @impl = Qmfengine::SchemaProperty.new(name, typecode) + @impl.setAccess(kwargs[:access]) if kwargs.include?(:access) + @impl.setIndex(kwargs[:index]) if kwargs.include?(:index) + @impl.setOptional(kwargs[:optional]) if kwargs.include?(:optional) + @impl.setUnit(kwargs[:unit]) if kwargs.include?(:unit) + @impl.setDesc(kwargs[:desc]) if kwargs.include?(:desc) + end + end + + def name + @impl.getName + end + + def to_s + name + end + end + + class SchemaStatistic + attr_reader :impl + def initialize(name, typecode, kwargs={}) + if kwargs.include?(:impl) + @impl = kwargs[:impl] + else + @impl = Qmfengine::SchemaStatistic.new(name, typecode) + @impl.setUnit(kwargs[:unit]) if kwargs.include?(:unit) + @impl.setDesc(kwargs[:desc]) if kwargs.include?(:desc) + end + end + + def name + @impl.getName + end + + def to_s + name + end + end + + class SchemaClassKey + attr_reader :impl + def initialize(i) + @impl = Qmfengine::SchemaClassKey.new(i) + end + + def package_name + @impl.getPackageName + end + + def class_name + @impl.getClassName + end + + def to_s + @impl.asString + end + end + + class SchemaObjectClass + attr_reader :impl, :properties, :statistics, :methods + def initialize(package, name, kwargs={}) + @properties = [] + @statistics = [] + @methods = [] + if kwargs.include?(:impl) + @impl = kwargs[:impl] + + @impl.getPropertyCount.times do |i| + @properties << SchemaProperty.new(nil, nil, :impl => @impl.getProperty(i)) + end + + @impl.getStatisticCount.times do |i| + @statistics << SchemaStatistic.new(nil, nil, :impl => @impl.getStatistic(i)) + end + + @impl.getMethodCount.times do |i| + @methods << SchemaMethod.new(nil, :impl => @impl.getMethod(i)) + end + else + @impl = Qmfengine::SchemaObjectClass.new(package, name) + end + end + + def add_property(prop) + @properties << prop + @impl.addProperty(prop.impl) + end + + def add_statistic(stat) + @statistics << stat + @impl.addStatistic(stat.impl) + end + + def add_method(meth) + @methods << meth + @impl.addMethod(meth.impl) + end + + def class_key + SchemaClassKey.new(@impl.getClassKey) + end + + def package_name + @impl.getClassKey.getPackageName + end + + def class_name + @impl.getClassKey.getClassName + end + end + + class SchemaEventClass + attr_reader :impl, :arguments + def initialize(package, name, kwargs={}) + @arguments = [] + if kwargs.include?(:impl) + @impl = kwargs[:impl] + @impl.getArgumentCount.times do |i| + @arguments << SchemaArgument.new(nil, nil, :impl => @impl.getArgument(i)) + end + else + @impl = Qmfengine::SchemaEventClass.new(package, name) + @impl.setDesc(kwargs[:desc]) if kwargs.include?(:desc) + end + end + + def add_argument(arg) + @arguments << arg + @impl.addArgument(arg.impl) + end + + def name + @impl.getClassKey.getClassName + end + end + + ##============================================================================== + ## CONSOLE + ##============================================================================== + + class ConsoleHandler + def agent_added(agent); end + def agent_deleted(agent); end + def new_package(package); end + def new_class(class_key); end + def object_update(object, hasProps, hasStats); end + def event_received(event); end + def agent_heartbeat(agent, timestamp); end + def method_response(resp); end + def broker_info(broker); end + end + + class Console + include MonitorMixin + attr_reader :impl + + def initialize(handler = nil, kwargs={}) + super() + @handler = handler + @impl = Qmfengine::Console.new + @event = Qmfengine::ConsoleEvent.new + @broker_list = [] + @cv = new_cond + @sync_count = nil + @sync_result = nil + @select = [] + @bt_count = 0 + @cb_cond = new_cond + @cb_thread = Thread.new do + run_cb_thread + end + end + + def add_connection(conn) + broker = Broker.new(self, conn) + synchronize { @broker_list << broker } + return broker + end + + def del_connection(broker) + broker.shutdown + synchronize { @broker_list.delete(broker) } + end + + def packages() + plist = [] + count = @impl.packageCount + for i in 0...count + plist << @impl.getPackageName(i) + end + return plist + end + + def classes(package, kind=CLASS_OBJECT) + clist = [] + count = @impl.classCount(package) + for i in 0...count + key = @impl.getClass(package, i) + class_kind = @impl.getClassKind(key) + if class_kind == kind + if kind == CLASS_OBJECT + clist << SchemaObjectClass.new(nil, nil, :impl => @impl.getObjectClass(key)) + elsif kind == CLASS_EVENT + clist << SchemaEventClass.new(nil, nil, :impl => @impl.getEventClass(key)) + end + end + end + + return clist + end + + def bind_package(package) + @impl.bindPackage(package) + end + + def bind_class(kwargs = {}) + if kwargs.include?(:key) + @impl.bindClass(kwargs[:key]) + elsif kwargs.include?(:package) + package = kwargs[:package] + if kwargs.include?(:class) + @impl.bindClass(package, kwargs[:class]) + else + @impl.bindClass(package) + end + else + raise ArgumentError, "Invalid arguments, use :key or :package[,:class]" + end + end + + def agents(broker = nil) + blist = [] + if broker + blist << broker + else + synchronize { blist = @broker_list } + end + + agents = [] + blist.each do |b| + count = b.impl.agentCount + for idx in 0...count + agents << AgentProxy.new(b.impl.getAgent(idx), b) + end + end + + return agents + end + + def objects(query, kwargs = {}) + timeout = 30 + agent = nil + kwargs.merge!(query) if query.class == Hash + + if kwargs.include?(:timeout) + timeout = kwargs[:timeout] + kwargs.delete(:timeout) + end + + if kwargs.include?(:agent) + agent = kwargs[:agent] + kwargs.delete(:agent) + end + + query = Query.new(kwargs) if query.class == Hash + + @select = [] + kwargs.each do |k,v| + @select << [k, v] if k.is_a?(String) + end + + synchronize do + @sync_count = 1 + @sync_result = [] + broker = nil + synchronize { broker = @broker_list[0] } + broker.send_query(query.impl, nil, agent) + unless @cv.wait(timeout) { @sync_count == 0 } + raise "Timed out waiting for response" + end + + return @sync_result + end + end + + # Return one and only one object or nil. + def object(query, kwargs = {}) + objs = objects(query, kwargs) + return objs.length == 1 ? objs[0] : nil + end + + # Return the first of potentially many objects. + def first_object(query, kwargs = {}) + objs = objects(query, kwargs) + return objs.length > 0 ? objs[0] : nil + end + + # Check the object against select to check for a match + def select_match(object) + @select.each do |key, value| + object.properties.each do |prop, propval| + if key == prop.name && value != propval + return nil + end + end + end + return :true + end + + def _get_result(list, context) + synchronize do + list.each do |item| + @sync_result << item if select_match(item) + end + @sync_count -= 1 + @cv.signal + end + end + + def start_sync(query) + end + + def touch_sync(sync) + end + + def end_sync(sync) + end + + def run_cb_thread + while :true + synchronize { @cb_cond.wait(1) } + begin + count = do_console_events + end until count == 0 + end + end + + def start_console_events + synchronize { @cb_cond.signal } + end + + def do_console_events + count = 0 + valid = @impl.getEvent(@event) + while valid + count += 1 + begin + case @event.kind + when Qmfengine::ConsoleEvent::AGENT_ADDED + @handler.agent_added(AgentProxy.new(@event.agent, nil)) if @handler + when Qmfengine::ConsoleEvent::AGENT_DELETED + @handler.agent_deleted(AgentProxy.new(@event.agent, nil)) if @handler + when Qmfengine::ConsoleEvent::NEW_PACKAGE + @handler.new_package(@event.name) if @handler + when Qmfengine::ConsoleEvent::NEW_CLASS + @handler.new_class(SchemaClassKey.new(@event.classKey)) if @handler + when Qmfengine::ConsoleEvent::OBJECT_UPDATE + @handler.object_update(ConsoleObject.new(nil, :impl => @event.object), @event.hasProps, @event.hasStats) if @handler + when Qmfengine::ConsoleEvent::EVENT_RECEIVED + when Qmfengine::ConsoleEvent::AGENT_HEARTBEAT + @handler.agent_heartbeat(AgentProxy.new(@event.agent, nil), @event.timestamp) if @handler + when Qmfengine::ConsoleEvent::METHOD_RESPONSE + end + rescue Exception => ex + puts "Exception caught in callback: #{ex}" + if @bt_count < 2 + puts ex.backtrace + @bt_count += 1 + end + end + @impl.popEvent + valid = @impl.getEvent(@event) + end + return count + end + end + + class AgentProxy + attr_reader :impl, :broker, :label, :key + + def initialize(impl, broker) + @impl = Qmfengine::AgentProxy.new(impl) + @broker = broker + @label = @impl.getLabel + @key = "#{@impl.getBrokerBank}.#{@impl.getAgentBank}" + end + end + + class Broker < ConnectionHandler + include MonitorMixin + attr_reader :impl, :conn, :console, :broker_bank + + def initialize(console, conn) + super() + @broker_bank = 1 + @console = console + @conn = conn + @session = nil + @cv = new_cond + @stable = nil + @event = Qmfengine::BrokerEvent.new + @xmtMessage = Qmfengine::Message.new + @impl = Qmfengine::BrokerProxy.new(@console.impl) + @console.impl.addConnection(@impl, self) + @conn.add_conn_handler(self) + @operational = :true + end + + def shutdown() + @console.impl.delConnection(@impl) + @conn.del_conn_handler(self) + @operational = :false + end + + def wait_for_stable(timeout = nil) + synchronize do + return if @stable + if timeout + unless @cv.wait(timeout) { @stable } + raise "Timed out waiting for broker connection to become stable" + end + else + while not @stable + @cv.wait + end + end + end + end + + def send_query(query, ctx, agent) + agent_impl = agent.impl if agent + @impl.sendQuery(query, ctx, agent_impl) + @conn.kick + end + + def do_broker_events() + count = 0 + valid = @impl.getEvent(@event) + while valid + count += 1 + case @event.kind + when Qmfengine::BrokerEvent::BROKER_INFO + when Qmfengine::BrokerEvent::DECLARE_QUEUE + @conn.impl.declareQueue(@session.handle, @event.name) + when Qmfengine::BrokerEvent::DELETE_QUEUE + @conn.impl.deleteQueue(@session.handle, @event.name) + when Qmfengine::BrokerEvent::BIND + @conn.impl.bind(@session.handle, @event.exchange, @event.name, @event.bindingKey) + when Qmfengine::BrokerEvent::UNBIND + @conn.impl.unbind(@session.handle, @event.exchange, @event.name, @event.bindingKey) + when Qmfengine::BrokerEvent::SETUP_COMPLETE + @impl.startProtocol + when Qmfengine::BrokerEvent::STABLE + synchronize do + @stable = :true + @cv.signal + end + when Qmfengine::BrokerEvent::QUERY_COMPLETE + result = [] + for idx in 0...@event.queryResponse.getObjectCount + result << ConsoleObject.new(nil, :impl => @event.queryResponse.getObject(idx), :broker => self) + end + @console._get_result(result, @event.context) + when Qmfengine::BrokerEvent::METHOD_RESPONSE + obj = @event.context + obj._method_result(MethodResponse.new(@event.methodResponse)) + end + @impl.popEvent + valid = @impl.getEvent(@event) + end + return count + end + + def do_broker_messages() + count = 0 + valid = @impl.getXmtMessage(@xmtMessage) + while valid + count += 1 + @conn.impl.sendMessage(@session.handle, @xmtMessage) + @impl.popXmt + valid = @impl.getXmtMessage(@xmtMessage) + end + return count + end + + def do_events() + begin + @console.start_console_events + bcnt = do_broker_events + mcnt = do_broker_messages + end until bcnt == 0 and mcnt == 0 + end + + def conn_event_connected() + puts "Console Connection Established..." + @session = Session.new(@conn, "qmfc-%s.%d" % [Socket.gethostname, Process::pid], self) + @impl.sessionOpened(@session.handle) + do_events + end + + def conn_event_disconnected(error) + puts "Console Connection Lost" + end + + def conn_event_visit + do_events + end + + def sess_event_session_closed(context, error) + puts "Console Session Lost" + @impl.sessionClosed() + end + + def sess_event_recv(context, message) + puts "Unexpected RECV Event" if not @operational + @impl.handleRcvMessage(message) + do_events + end + end + + ##============================================================================== + ## AGENT + ##============================================================================== + + class AgentHandler + def get_query(context, query, userId); end + def method_call(context, name, object_id, args, userId); end + end + + class Agent < ConnectionHandler + def initialize(handler, label="") + if label == "" + @agentLabel = "rb-%s.%d" % [Socket.gethostname, Process::pid] + else + @agentLabel = label + end + @conn = nil + @handler = handler + @impl = Qmfengine::Agent.new(@agentLabel) + @event = Qmfengine::AgentEvent.new + @xmtMessage = Qmfengine::Message.new + end + + def set_connection(conn) + @conn = conn + @conn.add_conn_handler(self) + end + + def register_class(cls) + @impl.registerClass(cls.impl) + end + + def alloc_object_id(low = 0, high = 0) + ObjectId.new(@impl.allocObjectId(low, high)) + end + + def query_response(context, object) + @impl.queryResponse(context, object.impl) + end + + def query_complete(context) + @impl.queryComplete(context) + end + + def method_response(context, status, text, arguments) + @impl.methodResponse(context, status, text, arguments.map) + end + + def do_agent_events() + count = 0 + valid = @impl.getEvent(@event) + while valid + count += 1 + case @event.kind + when Qmfengine::AgentEvent::GET_QUERY + @handler.get_query(@event.sequence, Query.new(:impl => @event.query), @event.authUserId) + when Qmfengine::AgentEvent::START_SYNC + when Qmfengine::AgentEvent::END_SYNC + when Qmfengine::AgentEvent::METHOD_CALL + args = Arguments.new(@event.arguments) + @handler.method_call(@event.sequence, @event.name, ObjectId.new(@event.objectId), + args, @event.authUserId) + when Qmfengine::AgentEvent::DECLARE_QUEUE + @conn.impl.declareQueue(@session.handle, @event.name) + when Qmfengine::AgentEvent::DELETE_QUEUE + @conn.impl.deleteQueue(@session.handle, @event.name) + when Qmfengine::AgentEvent::BIND + @conn.impl.bind(@session.handle, @event.exchange, @event.name, @event.bindingKey) + when Qmfengine::AgentEvent::UNBIND + @conn.impl.unbind(@session.handle, @event.exchange, @event.name, @event.bindingKey) + when Qmfengine::AgentEvent::SETUP_COMPLETE + @impl.startProtocol() + end + @impl.popEvent + valid = @impl.getEvent(@event) + end + return count + end + + def do_agent_messages() + count = 0 + valid = @impl.getXmtMessage(@xmtMessage) + while valid + count += 1 + @conn.impl.sendMessage(@session.handle, @xmtMessage) + @impl.popXmt + valid = @impl.getXmtMessage(@xmtMessage) + end + return count + end + + def do_events() + begin + ecnt = do_agent_events + mcnt = do_agent_messages + end until ecnt == 0 and mcnt == 0 + end + + def conn_event_connected() + puts "Agent Connection Established..." + @session = Session.new(@conn, "qmfa-%s.%d" % [Socket.gethostname, Process::pid], self) + @impl.newSession + do_events + end + + def conn_event_disconnected(error) + puts "Agent Connection Lost" + end + + def conn_event_visit + do_events + end + + def sess_event_session_closed(context, error) + puts "Agent Session Lost" + end + + def sess_event_recv(context, message) + @impl.handleRcvMessage(message) + do_events + end + end +end diff --git a/trunk/qpid/cpp/bindings/qmf/ruby/ruby.i b/trunk/qpid/cpp/bindings/qmf/ruby/ruby.i new file mode 100644 index 0000000000..b7fed403bd --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/ruby/ruby.i @@ -0,0 +1,106 @@ +/* + * 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. + */ + +%include stl.i + +%module qmfengine + +%typemap (in) void * +{ + $1 = (void *) $input; +} + +%typemap (out) void * +{ + $result = (VALUE) $1; +} + +%typemap (in) uint16_t +{ + $1 = NUM2UINT ($input); +} + +%typemap (out) uint16_t +{ + $result = UINT2NUM((uint16_t) $1); +} + +%typemap (in) uint32_t +{ + if (TYPE($input) == T_BIGNUM) + $1 = NUM2UINT($input); + else + $1 = FIX2UINT($input); +} + +%typemap (out) uint32_t +{ + $result = UINT2NUM((uint32_t) $1); +} + +%typemap (in) int32_t +{ + if (TYPE($input) == T_BIGNUM) + $1 = NUM2INT($input); + else + $1 = FIX2INT($input); +} + +%typemap (out) int32_t +{ + $result = INT2NUM((int32_t) $1); +} + +%typemap (typecheck, precedence=SWIG_TYPECHECK_INTEGER) uint32_t { + $1 = FIXNUM_P($input); +} + +%typemap (in) uint64_t +{ + if (TYPE($input) == T_BIGNUM) + $1 = NUM2ULL($input); + else + $1 = (uint64_t) FIX2LONG($input); +} + +%typemap (out) uint64_t +{ + $result = ULL2NUM((uint64_t) $1); +} + +%typemap (in) int64_t +{ + if (TYPE($input) == T_BIGNUM) + $1 = NUM2LL($input); + else + $1 = (int64_t) FIX2LONG($input); +} + +%typemap (out) int64_t +{ + $result = LL2NUM((int64_t) $1); +} + +%typemap (typecheck, precedence=SWIG_TYPECHECK_INTEGER) uint64_t { + $1 = FIXNUM_P($input); +} + + +%include "../qmfengine.i" + diff --git a/trunk/qpid/cpp/bindings/qmf/tests/Makefile.am b/trunk/qpid/cpp/bindings/qmf/tests/Makefile.am new file mode 100644 index 0000000000..182771e16b --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/tests/Makefile.am @@ -0,0 +1,27 @@ +# +# 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. +# + +TESTS = run_interop_tests + +EXTRA_DIST = \ + agent_ruby.rb \ + python_agent.py \ + python_console.py \ + ruby_console.rb \ + run_interop_tests diff --git a/trunk/qpid/cpp/bindings/qmf/tests/agent_ruby.rb b/trunk/qpid/cpp/bindings/qmf/tests/agent_ruby.rb new file mode 100755 index 0000000000..adf91a8b66 --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/tests/agent_ruby.rb @@ -0,0 +1,204 @@ +#!/usr/bin/ruby + +# +# 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. +# + +require 'qmf' +require 'socket' + +class Model + attr_reader :parent_class, :child_class + + def initialize + @parent_class = Qmf::SchemaObjectClass.new("org.apache.qpid.qmf", "parent") + @parent_class.add_property(Qmf::SchemaProperty.new("name", Qmf::TYPE_SSTR, :index => true)) + @parent_class.add_property(Qmf::SchemaProperty.new("state", Qmf::TYPE_SSTR)) + + @parent_class.add_property(Qmf::SchemaProperty.new("uint64val", Qmf::TYPE_UINT64)) + @parent_class.add_property(Qmf::SchemaProperty.new("uint32val", Qmf::TYPE_UINT32)) + @parent_class.add_property(Qmf::SchemaProperty.new("uint16val", Qmf::TYPE_UINT16)) + @parent_class.add_property(Qmf::SchemaProperty.new("uint8val", Qmf::TYPE_UINT8)) + + @parent_class.add_property(Qmf::SchemaProperty.new("int64val", Qmf::TYPE_INT64)) + @parent_class.add_property(Qmf::SchemaProperty.new("int32val", Qmf::TYPE_INT32)) + @parent_class.add_property(Qmf::SchemaProperty.new("int16val", Qmf::TYPE_INT16)) + @parent_class.add_property(Qmf::SchemaProperty.new("int8val", Qmf::TYPE_INT8)) + + @parent_class.add_property(Qmf::SchemaProperty.new("sstrval", Qmf::TYPE_SSTR)) + @parent_class.add_property(Qmf::SchemaProperty.new("lstrval", Qmf::TYPE_LSTR)) + + @parent_class.add_statistic(Qmf::SchemaStatistic.new("queryCount", Qmf::TYPE_UINT32, :unit => "query", :desc => "Query count")) + + method = Qmf::SchemaMethod.new("echo", :desc => "Check responsiveness of the agent object") + method.add_argument(Qmf::SchemaArgument.new("sequence", Qmf::TYPE_UINT32, :dir => Qmf::DIR_IN_OUT)) + @parent_class.add_method(method) + + method = Qmf::SchemaMethod.new("set_numerics", :desc => "Set the numeric values in the object") + method.add_argument(Qmf::SchemaArgument.new("test", Qmf::TYPE_SSTR, :dir => Qmf::DIR_IN)) + @parent_class.add_method(method) + + method = Qmf::SchemaMethod.new("set_short_string", :desc => "Set the short string value in the object") + method.add_argument(Qmf::SchemaArgument.new("value", Qmf::TYPE_SSTR, :dir => Qmf::DIR_IN_OUT)) + @parent_class.add_method(method) + + method = Qmf::SchemaMethod.new("set_long_string", :desc => "Set the long string value in the object") + method.add_argument(Qmf::SchemaArgument.new("value", Qmf::TYPE_LSTR, :dir => Qmf::DIR_IN_OUT)) + @parent_class.add_method(method) + + method = Qmf::SchemaMethod.new("create_child", :desc => "Create a new child object") + method.add_argument(Qmf::SchemaArgument.new("child_name", Qmf::TYPE_LSTR, :dir => Qmf::DIR_IN)) + method.add_argument(Qmf::SchemaArgument.new("child_ref", Qmf::TYPE_REF, :dir => Qmf::DIR_OUT)) + @parent_class.add_method(method) + + method = Qmf::SchemaMethod.new("probe_userid", :desc => "Return the user-id for this method call") + method.add_argument(Qmf::SchemaArgument.new("userid", Qmf::TYPE_SSTR, :dir => Qmf::DIR_OUT)) + @parent_class.add_method(method) + + @child_class = Qmf::SchemaObjectClass.new("org.apache.qpid.qmf", "child") + @child_class.add_property(Qmf::SchemaProperty.new("name", Qmf::TYPE_SSTR, :index => true)) + end + + def register(agent) + agent.register_class(@parent_class) + agent.register_class(@child_class) + end +end + + +class App < Qmf::AgentHandler + def get_query(context, query, userId) +# puts "Query: user=#{userId} context=#{context} class=#{query.class_name} object_num=#{query.object_id if query.object_id}" + if query.class_name == 'parent' + @agent.query_response(context, @parent) + elsif query.object_id == @parent_oid + @agent.query_response(context, @parent) + end + @agent.query_complete(context) + end + + def method_call(context, name, object_id, args, userId) +# puts "Method: user=#{userId} context=#{context} method=#{name} object_num=#{object_id if object_id} args=#{args}" + + retCode = 0 + retText = "OK" + + if name == "echo" + @agent.method_response(context, 0, "OK", args) + + elsif name == "set_numerics" + + if args['test'] == "big" + @parent.uint64val = 0x9494949449494949 + @parent.uint32val = 0xa5a55a5a + @parent.uint16val = 0xb66b + @parent.uint8val = 0xc7 + + @parent.int64val = 1000000000000000000 + @parent.int32val = 1000000000 + @parent.int16val = 10000 + @parent.int8val = 100 + + elsif args['test'] == "small" + @parent.uint64val = 4 + @parent.uint32val = 5 + @parent.uint16val = 6 + @parent.uint8val = 7 + + @parent.int64val = 8 + @parent.int32val = 9 + @parent.int16val = 10 + @parent.int8val = 11 + + elsif args['test'] == "negative" + @parent.uint64val = 0 + @parent.uint32val = 0 + @parent.uint16val = 0 + @parent.uint8val = 0 + + @parent.int64val = -10000000000 + @parent.int32val = -100000 + @parent.int16val = -1000 + @parent.int8val = -100 + + else + retCode = 1 + retText = "Invalid argument value for test" + end + + elsif name == "set_short_string" + @parent.sstrval = args['value'] + + elsif name == "set_long_string" + @parent.lstrval = args['value'] + + elsif name == "create_child" + oid = @agent.alloc_object_id(2) + args['child_ref'] = oid + @child = Qmf::AgentObject.new(@model.child_class) + @child.name = args.by_key("child_name") + @child.set_object_id(oid) + + elsif name == "probe_userid" + args['userid'] = userId + + else + retCode = 1 + retText = "Unimplemented Method: #{name}" + end + + @agent.method_response(context, retCode, retText, args) + end + + def main + @settings = Qmf::ConnectionSettings.new + @settings.set_attr("host", ARGV[0]) if ARGV.size > 0 + @settings.set_attr("port", ARGV[1].to_i) if ARGV.size > 1 + @connection = Qmf::Connection.new(@settings) + @agent = Qmf::Agent.new(self) + + @model = Model.new + @model.register(@agent) + + @agent.set_connection(@connection) + + @parent = Qmf::AgentObject.new(@model.parent_class) + @parent.name = "Parent One" + @parent.state = "OPERATIONAL" + + @parent.uint64val = 0 + @parent.uint32val = 0 + @parent.uint16val = 0 + @parent.uint8val = 0 + + @parent.int64val = 0 + @parent.int32val = 0 + @parent.int16val = 0 + @parent.int8val = 0 + + @parent_oid = @agent.alloc_object_id(1) + @parent.set_object_id(@parent_oid) + + sleep + end +end + +app = App.new +app.main + + diff --git a/trunk/qpid/cpp/bindings/qmf/tests/python_agent.py b/trunk/qpid/cpp/bindings/qmf/tests/python_agent.py new file mode 100644 index 0000000000..0f5ffe5b8a --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/tests/python_agent.py @@ -0,0 +1,230 @@ +#!/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 qmf +import sys +import time + + +class Model: + # attr_reader :parent_class, :child_class + def __init__(self): + self.parent_class = qmf.SchemaObjectClass("org.apache.qpid.qmf", "parent") + self.parent_class.add_property(qmf.SchemaProperty("name", qmf.TYPE_SSTR, {"index":True})) + self.parent_class.add_property(qmf.SchemaProperty("state", qmf.TYPE_SSTR)) + + self.parent_class.add_property(qmf.SchemaProperty("uint64val", qmf.TYPE_UINT64)) + self.parent_class.add_property(qmf.SchemaProperty("uint32val", qmf.TYPE_UINT32)) + self.parent_class.add_property(qmf.SchemaProperty("uint16val", qmf.TYPE_UINT16)) + self.parent_class.add_property(qmf.SchemaProperty("uint8val", qmf.TYPE_UINT8)) + + self.parent_class.add_property(qmf.SchemaProperty("int64val", qmf.TYPE_INT64)) + self.parent_class.add_property(qmf.SchemaProperty("int32val", qmf.TYPE_INT32)) + self.parent_class.add_property(qmf.SchemaProperty("int16val", qmf.TYPE_INT16)) + self.parent_class.add_property(qmf.SchemaProperty("int8val", qmf.TYPE_INT8)) + + self.parent_class.add_statistic(qmf.SchemaStatistic("queryCount", qmf.TYPE_UINT32, {"unit":"query", "desc":"Query count"})) + + _method = qmf.SchemaMethod("echo", {"desc":"Check responsiveness of the agent object"}) + _method.add_argument(qmf.SchemaArgument("sequence", qmf.TYPE_UINT32, {"dir":qmf.DIR_IN_OUT})) + self.parent_class.add_method(_method) + + _method = qmf.SchemaMethod("set_numerics", {"desc":"Set the numeric values in the object"}) + _method.add_argument(qmf.SchemaArgument("test", qmf.TYPE_SSTR, {"dir":qmf.DIR_IN})) + self.parent_class.add_method(_method) + + _method = qmf.SchemaMethod("create_child", {"desc":"Create a new child object"}) + _method.add_argument(qmf.SchemaArgument("child_name", qmf.TYPE_LSTR, {"dir":qmf.DIR_IN})) + _method.add_argument(qmf.SchemaArgument("child_ref", qmf.TYPE_REF, {"dir":qmf.DIR_OUT})) + self.parent_class.add_method(_method) + + _method = qmf.SchemaMethod("probe_userid", {"desc":"Return the user-id for this method call"}) + _method.add_argument(qmf.SchemaArgument("userid", qmf.TYPE_SSTR, {"dir":qmf.DIR_OUT})) + self.parent_class.add_method(_method) + + self.child_class = qmf.SchemaObjectClass("org.apache.qpid.qmf", "child") + self.child_class.add_property(qmf.SchemaProperty("name", qmf.TYPE_SSTR, {"index":True})) + + + def register(self, agent): + agent.register_class(self.parent_class) + agent.register_class(self.child_class) + + + +class App(qmf.AgentHandler): + ''' + Object that handles events received by the Agent. + ''' + def get_query(self, context, query, userId): + ''' + Respond to a Query request from a console. + ''' + #print "Query: user=%s context=%d class=%s" % (userId, context, query.class_name()) + #if query.object_id(): + # print query.object_id().object_num_low() + self._parent.inc_attr("queryCount") + if query.class_name() == 'parent': + self._agent.query_response(context, self._parent) + elif query.object_id() == self._parent_oid: + self._agent.query_response(context, self._parent) + self._agent.query_complete(context) + + + def method_call(self, context, name, object_id, args, userId): + ''' + Invoke a method call requested by the console. + ''' + #print "Method: name=%s user=%s context=%d object_id=%s args=%s" % (name, userId, context, object_id, args) + if name == "echo": + self._agent.method_response(context, 0, "OK", args) + + elif name == "set_numerics": + _retCode = 0 + _retText = "OK" + + if args['test'] == "big": + # + # note the alternate forms for setting object attributes: + # + self._parent.set_attr("uint64val", 0x9494949449494949) + self._parent.uint32val = 0xa5a55a5a + self._parent.set_attr("uint16val", 0xb66b) + self._parent["uint8val"] = 0xc7 + + self._parent.int64val = 1000000000000000000 + self._parent.set_attr("int32val", 1000000000) + self._parent["int16val"] = 10000 + self._parent.set_attr("int8val", 100) + + ## Test the __getattr__ implementation: + ## @todo: remove once python_client implements this + ## form of property access + assert self._parent["uint8val"] == 0xc7 + assert self._parent.uint64val == 0x9494949449494949 + + # note the alternative argument access syntax: + elif args.test == "small": + self._parent.set_attr("uint64val", 4) + self._parent.set_attr("uint32val", 5) + self._parent.set_attr("uint16val", 6) + self._parent.set_attr("uint8val", 7) + + self._parent.set_attr("int64val", 8) + self._parent.set_attr("int32val", 9) + self._parent.set_attr("int16val", 10) + self._parent.set_attr("int8val", 11) + + elif args['test'] == "negative": + self._parent.set_attr("uint64val", 0) + self._parent.set_attr("uint32val", 0) + self._parent.set_attr("uint16val", 0) + self._parent.set_attr("uint8val", 0) + + self._parent.set_attr("int64val", -10000000000) + self._parent.set_attr("int32val", -100000) + self._parent.set_attr("int16val", -1000) + self._parent.set_attr("int8val", -100) + + else: + _retCode = 1 + _retText = "Invalid argument value for test" + + self._agent.method_response(context, _retCode, _retText, args) + + elif name == "create_child": + # + # Instantiate an object based on the Child Schema Class + # + _oid = self._agent.alloc_object_id(2) + args['child_ref'] = _oid + self._child = qmf.AgentObject(self._model.child_class) + self._child.set_attr("name", args["child_name"]) + self._child.set_object_id(_oid) + self._agent.method_response(context, 0, "OK", args) + + elif name == "probe_userid": + args['userid'] = userId + self._agent.method_response(context, 0, "OK", args) + + else: + self._agent.method_response(context, 1, "Unimplemented Method: %s" % name, args) + + + def main(self): + ''' + Agent application's main processing loop. + ''' + # Connect to the broker + self._settings = qmf.ConnectionSettings() + self._settings.sendUserId = True + if len(sys.argv) > 1: + self._settings.host = str(sys.argv[1]) + if len(sys.argv) > 2: + self._settings.port = int(sys.argv[2]) + self._connection = qmf.Connection(self._settings) + + # Instantiate an Agent to serve me queries and method calls + self._agent = qmf.Agent(self) + + # Dynamically define the parent and child schemas, then + # register them with the agent + self._model = Model() + self._model.register(self._agent) + + # Tell the agent about our connection to the broker + self._agent.set_connection(self._connection) + + # Instantiate and populate an instance of the Parent + # Schema Object + self._parent = qmf.AgentObject(self._model.parent_class) + + ## @todo how do we force a test failure? + # verify the properties() and statistics() object methods: + assert len(self._parent.properties()) == 10 + assert len(self._parent.statistics()) == 1 + + self._parent.set_attr("name", "Parent One") + self._parent.set_attr("state", "OPERATIONAL") + + self._parent.set_attr("uint64val", 0) + self._parent.set_attr("uint32val", 0) + self._parent.set_attr("uint16val", 0) + self._parent.set_attr("uint8val", 0) + + self._parent.set_attr("int64val", 0) + self._parent.set_attr("int32val", 0) + self._parent.set_attr("int16val", 0) + self._parent.set_attr("int8val", 0) + + self._parent_oid = self._agent.alloc_object_id(1) + self._parent.set_object_id(self._parent_oid) + + # Now wait for events arriving on the connection + # to the broker... + while True: + time.sleep(1000) + + + +app = App() +app.main() + diff --git a/trunk/qpid/cpp/bindings/qmf/tests/python_console.py b/trunk/qpid/cpp/bindings/qmf/tests/python_console.py new file mode 100755 index 0000000000..6f366d1a3d --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/tests/python_console.py @@ -0,0 +1,178 @@ +#!/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.testlib import TestBase010 +from qpid.datatypes import Message +from qpid.queue import Empty +from time import sleep + +class QmfInteropTests(TestBase010): + + def test_A_agent_presence(self): + self.startQmf(); + qmf = self.qmf + + agents = [] + count = 0 + while len(agents) == 0: + agents = qmf.getObjects(_class="agent") + sleep(1) + count += 1 + if count > 10: + self.fail("Timed out waiting for remote agent") + + def test_B_basic_method_invocation(self): + self.startQmf(); + qmf = self.qmf + + parents = qmf.getObjects(_class="parent") + self.assertEqual(len(parents), 1) + parent = parents[0] + for seq in range(10): + result = parent.echo(seq) + self.assertEqual(result.status, 0) + self.assertEqual(result.text, "OK") + self.assertEqual(result.sequence, seq) + + result = parent.set_numerics("bogus") + self.assertEqual(result.status, 1) + self.assertEqual(result.text, "Invalid argument value for test") + + def test_C_basic_types_numeric_big(self): + self.startQmf(); + qmf = self.qmf + + parents = qmf.getObjects(_class="parent") + self.assertEqual(len(parents), 1) + parent = parents[0] + + result = parent.set_numerics("big") + self.assertEqual(result.status, 0) + self.assertEqual(result.text, "OK") + + parent.update() + + self.assertEqual(parent.uint64val, 0x9494949449494949) + self.assertEqual(parent.uint32val, 0xA5A55A5A) + self.assertEqual(parent.uint16val, 0xB66B) + self.assertEqual(parent.uint8val, 0xC7) + + self.assertEqual(parent.int64val, 1000000000000000000) + self.assertEqual(parent.int32val, 1000000000) + self.assertEqual(parent.int16val, 10000) + self.assertEqual(parent.int8val, 100) + + def test_C_basic_types_numeric_small(self): + self.startQmf(); + qmf = self.qmf + + parents = qmf.getObjects(_class="parent") + self.assertEqual(len(parents), 1) + parent = parents[0] + + result = parent.set_numerics("small") + self.assertEqual(result.status, 0) + self.assertEqual(result.text, "OK") + + parent.update() + + self.assertEqual(parent.uint64val, 4) + self.assertEqual(parent.uint32val, 5) + self.assertEqual(parent.uint16val, 6) + self.assertEqual(parent.uint8val, 7) + + self.assertEqual(parent.int64val, 8) + self.assertEqual(parent.int32val, 9) + self.assertEqual(parent.int16val, 10) + self.assertEqual(parent.int8val, 11) + + def test_C_basic_types_numeric_negative(self): + self.startQmf(); + qmf = self.qmf + + parents = qmf.getObjects(_class="parent") + self.assertEqual(len(parents), 1) + parent = parents[0] + + result = parent.set_numerics("negative") + self.assertEqual(result.status, 0) + self.assertEqual(result.text, "OK") + + parent.update() + + self.assertEqual(parent.uint64val, 0) + self.assertEqual(parent.uint32val, 0) + self.assertEqual(parent.uint16val, 0) + self.assertEqual(parent.uint8val, 0) + + self.assertEqual(parent.int64val, -10000000000) + self.assertEqual(parent.int32val, -100000) + self.assertEqual(parent.int16val, -1000) + self.assertEqual(parent.int8val, -100) + + def disabled_test_D_userid_for_method(self): + self.startQmf(); + qmf = self.qmf + + parents = qmf.getObjects(_class="parent") + self.assertEqual(len(parents), 1) + parent = parents[0] + + result = parent.probe_userid() + self.assertEqual(result.status, 0) + self.assertEqual(result.userid, "guest") + + def test_D_get_by_object_id(self): + self.startQmf() + qmf = self.qmf + + parents = qmf.getObjects(_class="parent") + self.assertEqual(len(parents), 1) + parent = parents[0] + + newList = qmf.getObjects(_objectId=parent.getObjectId()) + self.assertEqual(len(newList), 1) + + def test_E_filter_by_object_id(self): + self.startQmf() + qmf = self.qmf + + list = qmf.getObjects(_class="exchange", name="qpid.management") + self.assertEqual(len(list), 1, "No Management Exchange") + mgmt_exchange = list[0] + + bindings = qmf.getObjects(_class="binding", exchangeRef=mgmt_exchange.getObjectId()) + if len(bindings) == 0: + self.fail("No bindings found on management exchange") + + for binding in bindings: + self.assertEqual(binding.exchangeRef, mgmt_exchange.getObjectId()) + + def getProperty(self, msg, name): + for h in msg.headers: + if hasattr(h, name): return getattr(h, name) + return None + + def getAppHeader(self, msg, name): + headers = self.getProperty(msg, "application_headers") + if headers: + return headers[name] + return None diff --git a/trunk/qpid/cpp/bindings/qmf/tests/ruby_console.rb b/trunk/qpid/cpp/bindings/qmf/tests/ruby_console.rb new file mode 100755 index 0000000000..31670312d6 --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/tests/ruby_console.rb @@ -0,0 +1,174 @@ +#!/usr/bin/ruby + +# +# 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. +# + +require 'qmf' +require 'socket' + +class App < Qmf::ConsoleHandler + + def agent_added(agent) + puts "AgentAdded: label=#{agent.label} key=#{agent.key}" + end + + def agent_deleted(agent) + puts "AgentDeleted: #{agent.label}" + end + + def new_package(package) + puts "NewPackage: #{package}" + end + + def new_class(class_key) + puts "NewClass: #{class_key}" + end + + def object_update(object, hasProps, hasStats) + puts "ObjectUpdate: #{object.object_class.class_name} props=#{hasProps} stats=#{hasStats}" + puts " agent-key=#{object.object_id.agent_key}" + puts " package=#{object.object_class.package_name}" + end + + def event_received(event); end + + def agent_heartbeat(agent, timestamp) + puts "AgentHeartbeat: #{agent.label} time=#{timestamp/1000000000}" + end + + def method_response(resp); end + def broker_info(broker); end + + + def dump_schema + packages = @qmfc.packages + puts "----- Packages -----" + packages.each do |p| + puts p + puts " ----- Object Classes -----" + classes = @qmfc.classes(p) + classes.each do |c| + puts " #{c.name}" + + puts " ---- Properties ----" + props = c.properties + props.each do |prop| + puts " #{prop.name}" + end + + puts " ---- Statistics ----" + stats = c.statistics + stats.each do |stat| + puts " #{stat.name}" + end + + puts " ---- Methods ----" + methods = c.methods + methods.each do |method| + puts " #{method.name}" + puts " ---- Args ----" + args = method.arguments + args.each do |arg| + puts " #{arg.name}" + end + end + end + + puts " ----- Event Classes -----" + classes = @qmfc.classes(p, Qmf::CLASS_EVENT) + classes.each do |c| + puts " #{c.name}" + puts " ---- Args ----" + args = c.arguments + args.each do |arg| + puts " #{arg.name}" + end + end + end + puts "-----" + end + + def main + @settings = Qmf::ConnectionSettings.new + @settings.host = ARGV[0] if ARGV.size > 0 + @settings.port = ARGV[1].to_i if ARGV.size > 1 + @connection = Qmf::Connection.new(@settings) + @qmfc = Qmf::Console.new(self) + + @broker = @qmfc.add_connection(@connection) + @broker.wait_for_stable + + ##dump_schema + + agents = @qmfc.agents() + puts "---- Agents ----" + agents.each do |a| + puts " => #{a.label}" + end + puts "----" + + for idx in 0...20 + blist = @qmfc.objects(Qmf::Query.new(:class => "broker")) + puts "---- Brokers ----" + blist.each do |b| + puts " ---- Broker ----" + puts " systemRef: #{b.systemRef}" + puts " port : #{b.port}" + puts " uptime : #{b.uptime / 1000000000}" + puts " properties : #{b.properties}" + puts " statistics : #{b.statistics}" + + for rep in 0...1 + puts " Pinging..." + ret = b.echo(45, 'text string') + puts " status=#{ret.status} text=#{ret.exception.asString} seq=#{ret.args.sequence} body=#{ret.args.body}" + end + end + puts "----" + + elist = @qmfc.objects(:package => "org.apache.qpid.broker", :class => "exchange", 'durable' => true) + puts "---- Durable Exchanges ----" + elist.each do |e| + puts "Exchange: #{e.name}" + end + puts "----" + + qlist = @qmfc.objects(Qmf::Query.new(:package => "org.apache.qpid.broker", + :class => "queue")) + puts "---- Queues ----" + qlist.each do |q| + puts " ---- Queue ----" + puts " name : #{q.name}" + end + puts "----" + sleep(5) + end + + sleep(5) + puts "Deleting connection..." + @qmfc.del_connection(@broker) + puts " done" + sleep + end +end + +app = App.new +app.main + + diff --git a/trunk/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb b/trunk/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb new file mode 100755 index 0000000000..c5c7b141dd --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb @@ -0,0 +1,234 @@ +#!/usr/bin/ruby + +# +# 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. +# + +require 'test_base' + +class ConsoleTest < ConsoleTestBase + + def test_A_agent_presence + assert(@connection.connected?, "Connection not connected") + + agents = [] + count = 0 + while agents.size == 0 + agents = @qmfc.objects(Qmf::Query.new(:class => "agent")) + sleep(1) + count += 1 + fail("Timed out waiting for remote agent") if count > 10 + end + + agentList = @qmfc.agents + assert_equal(agentList.size, 2, "Number of agents reported by Console") + end + + def test_A_connection_settings + begin + @settings.bogusAttribute = 25 + fail("Connection settings accepted bogus attribute") + rescue + end + end + + def test_B_basic_method_invocation + parent = @qmfc.object(:class => "parent") + assert(parent, "Number of 'parent' objects") + for seq in 0...10 + result = parent.echo(seq) + assert_equal(result.status, 0, "Method Response Status") + assert_equal(result.text, "OK", "Method Response Text") + assert_equal(result.args.sequence, seq, "Echo Response Sequence") + end + + result = parent.set_numerics("bogus") + assert_equal(result.status, 1) + assert_equal(result.text, "Invalid argument value for test") + end + + def test_C_basic_types_numeric_big + parent = @qmfc.object(:class =>"parent") + assert(parent, "Number of parent objects") + + result = parent.set_numerics("big") + assert_equal(result.status, 0, "Method Response Status") + assert_equal(result.text, "OK", "Method Response Text") + + parent.update + + assert_equal(parent.uint64val, 0x9494949449494949) + assert_equal(parent.uint32val, 0xA5A55A5A) + assert_equal(parent.uint16val, 0xB66B) + assert_equal(parent.uint8val, 0xC7) + + assert_equal(parent.int64val, 1000000000000000000) + assert_equal(parent.int32val, 1000000000) + assert_equal(parent.int16val, 10000) + assert_equal(parent.int8val, 100) + end + + def test_C_basic_types_numeric_small + parent = @qmfc.object(:class =>"parent") + assert(parent, "Number of parent objects") + + result = parent.set_numerics("small") + assert_equal(result.status, 0, "Method Response Status") + assert_equal(result.text, "OK", "Method Response Text") + + parent.update + + assert_equal(parent.uint64val, 4) + assert_equal(parent.uint32val, 5) + assert_equal(parent.uint16val, 6) + assert_equal(parent.uint8val, 7) + + assert_equal(parent.int64val, 8) + assert_equal(parent.int32val, 9) + assert_equal(parent.int16val, 10) + assert_equal(parent.int8val, 11) + end + + def test_C_basic_types_numeric_negative + parent = @qmfc.object(:class =>"parent") + assert(parent, "Number of parent objects") + + result = parent.set_numerics("negative") + assert_equal(result.status, 0, "Method Response Status") + assert_equal(result.text, "OK", "Method Response Text") + + parent.update + + assert_equal(parent.uint64val, 0) + assert_equal(parent.uint32val, 0) + assert_equal(parent.uint16val, 0) + assert_equal(parent.uint8val, 0) + + assert_equal(parent.int64val, -10000000000) + assert_equal(parent.int32val, -100000) + assert_equal(parent.int16val, -1000) + assert_equal(parent.int8val, -100) + end + + def test_C_basic_types_string_short + parent = @qmfc.object(:class =>"parent") + assert(parent, "Number of parent objects") + + strings = [] + strings << "" + strings << "A" + strings << "BC" + strings << "DEF" + strings << "GHIJKLMNOPQRSTUVWXYZ" + big = "a" + for i in 0...270 + big << "X" + end + strings << big + + strings.each do |str| + result = parent.set_short_string(str) + assert_equal(result.status, 0, "Method Response Status") + compare = str + compare = compare[0..254] if compare.size > 255 + assert_equal(result.args.value, compare, "Value returned by method") + parent.update + assert_equal(parent.sstrval, compare, "Value stored in the object") + end + end + + def test_C_basic_types_string_long + parent = @qmfc.object(:class =>"parent") + assert(parent, "Number of parent objects") + + strings = [] + strings << "" + strings << "A" + strings << "BC" + strings << "DEF" + strings << "GHIJKLMNOPQRSTUVWXYZ" + big = "a" + for i in 0...270 + big << "X" + end + strings << big + + strings.each do |str| + result = parent.set_long_string(str) + assert_equal(result.status, 0, "Method Response Status") + assert_equal(result.args.value, str, "Value returned by method") + parent.update + assert_equal(parent.lstrval, str, "Value stored in the object") + end + end + + def test_D_userid_for_method + parent = @qmfc.object(:class => "parent") + assert(parent, "Number of parent objects") + + result = parent.probe_userid + assert_equal(result.status, 0, "Method Response Status") + assert_equal(result.args.userid, "anonymous") + end + + def test_D_get_by_object_id + parent = @qmfc.object(:class => "parent") + assert(parent, "Number of parent objects") + + list = @qmfc.objects(:object_id => parent.object_id) + assert_equal(list.size, 1) + + bad_oid = Qmf::ObjectId.new + list = @qmfc.objects(:object_id => bad_oid) + assert_equal(list.size, 0) + + # TODO: test a bad_oid that has an agent-bank that is not associated with an attached agent. + + end + + def test_D_get_with_agent + agents = @qmfc.agents + agents.each do |agent| + if agent.label == "qmfa" + parent = @qmfc.object(:class => "parent", :agent => agent) + assert(parent, "Number of parent objects") + return + end + end + + fail("Didn't find a non-broker agent") + end + + def test_E_filter_by_object_id + mgmt_exchange = @qmfc.object(:class => "exchange", 'name' => "qpid.management") + assert(mgmt_exchange, "No Management Exchange") + + bindings = @qmfc.objects(:class => "binding", 'exchangeRef' => mgmt_exchange.object_id) + if bindings.size == 0 + fail("No bindings found on management exchange") + end + + bindings.each do |binding| + assert_equal(binding.exchangeRef, mgmt_exchange.object_id) + end + end + +end + +app = ConsoleTest.new + diff --git a/trunk/qpid/cpp/bindings/qmf/tests/run_interop_tests b/trunk/qpid/cpp/bindings/qmf/tests/run_interop_tests new file mode 100755 index 0000000000..b5545d736d --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/tests/run_interop_tests @@ -0,0 +1,121 @@ +#!/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. +# + +# Run the qmf interoperability tests. +MY_DIR=`dirname \`which $0\`` +QPID_DIR=${MY_DIR}/../../../.. +BUILD_DIR=../../.. +PYTHON_DIR=${QPID_DIR}/python +BROKER_DIR=${BUILD_DIR}/src +API_DIR=${BUILD_DIR}/bindings/qmf +SPEC_DIR=${QPID_DIR}/specs + +RUBY_LIB_DIR=${API_DIR}/ruby/.libs +PYTHON_LIB_DIR=${API_DIR}/python/.libs + +trap stop_broker INT TERM QUIT + +start_broker() { + ${BROKER_DIR}/qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no > _qpidd.port + BROKER_PORT=`cat _qpidd.port` +} + +stop_broker() { + ${BROKER_DIR}/qpidd -q --port $BROKER_PORT + echo "Broker stopped" +} + +start_ruby_agent() { + ruby -I${MY_DIR}/../ruby -I${RUBY_LIB_DIR} ${MY_DIR}/agent_ruby.rb localhost $BROKER_PORT & + AGENT_PID=$! +} + +stop_ruby_agent() { + kill $AGENT_PID +} + +start_python_agent() { + PYTHONPATH="${MY_DIR}/../python:${API_DIR}/python:${PYTHON_LIB_DIR}" python ${MY_DIR}/python_agent.py localhost $BROKER_PORT & + PY_AGENT_PID=$! +} + +stop_python_agent() { + kill $PY_AGENT_PID +} + +TESTS_FAILED=0 + +if test -d ${PYTHON_DIR} ; then + start_broker + echo "Running qmf interop tests using broker on port $BROKER_PORT" + PYTHONPATH=${PYTHON_DIR}:${MY_DIR} + export PYTHONPATH + + if test -d ${PYTHON_LIB_DIR} ; then + echo " Python Agent (external storage) vs. Pure-Python Console" + start_python_agent + echo " Python agent started at pid $PY_AGENT_PID" + ${PYTHON_DIR}/qpid-python-test -m python_console -b localhost:$BROKER_PORT $@ + RETCODE=$? + stop_python_agent + if test x$RETCODE != x0; then + echo "FAIL qmf interop tests (Python Agent)"; + TESTS_FAILED=1 + fi + fi + + if test -d ${RUBY_LIB_DIR} ; then + echo " Ruby Agent (external storage) vs. Pure-Python Console" + start_ruby_agent + echo " Ruby agent started at pid $AGENT_PID" + ${PYTHON_DIR}/qpid-python-test -m python_console -b localhost:$BROKER_PORT $@ + RETCODE=$? + if test x$RETCODE != x0; then + echo "FAIL qmf interop tests (Ruby Agent)"; + TESTS_FAILED=1 + fi + + echo " Ruby Agent (external storage) vs. Ruby Console" + ruby -I${MY_DIR} -I${MY_DIR}/../ruby -I${RUBY_LIB_DIR} ${MY_DIR}/ruby_console_test.rb localhost $BROKER_PORT $@ + RETCODE=$? + stop_ruby_agent + if test x$RETCODE != x0; then + echo "FAIL qmf interop tests (Ruby Console/Ruby Agent)"; + TESTS_FAILED=1 + fi + fi + + # Also against the Pure-Python console: + # Ruby agent (internal storage) + # Python agent (external and internal) + # C++ agent (external and internal) + # + # Other consoles against the same set of agents: + # Wrapped Python console + # Ruby console + # C++ console + + stop_broker + if test x$TESTS_FAILED != x0; then + echo "TEST FAILED!" + exit 1 + fi +fi diff --git a/trunk/qpid/cpp/bindings/qmf/tests/test_base.rb b/trunk/qpid/cpp/bindings/qmf/tests/test_base.rb new file mode 100644 index 0000000000..cb7fd9d4f9 --- /dev/null +++ b/trunk/qpid/cpp/bindings/qmf/tests/test_base.rb @@ -0,0 +1,73 @@ +#!/usr/bin/ruby + +# +# 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. +# + +require 'qmf' +require 'socket' + +class ConsoleTestBase < Qmf::ConsoleHandler + def initialize + @settings = Qmf::ConnectionSettings.new + @settings.host = ARGV[0] if ARGV.size > 0 + @settings.port = ARGV[1].to_i if ARGV.size > 1 + @connection = Qmf::Connection.new(@settings) + @qmfc = Qmf::Console.new + + @broker = @qmfc.add_connection(@connection) + @broker.wait_for_stable + + tests = [] + methods.each do |m| + name = m.to_s + tests << name if name[0..4] == "test_" + end + + failures = 0 + + tests.sort.each do |t| + begin + print "#{t}..." + $stdout.flush + send(t) + puts " Pass" + rescue + puts " Fail: #{$!}" + failures += 1 + end + end + + @qmfc.del_connection(@broker) + exit(1) if failures > 0 + end + + def assert_equal(left, right, in_text=nil) + text = " (#{in_text})" if in_text + raise "Assertion failed: #{left} != #{right}#{text}" unless left == right + end + + def assert(condition, in_text=nil) + text = " (#{in_text})" if in_text + raise "Assertion failed: #{left} != #{right}#{text}" unless condition + end + + def fail(text) + raise text + end +end diff --git a/trunk/qpid/cpp/boost-1.32-support/Makefile b/trunk/qpid/cpp/boost-1.32-support/Makefile new file mode 100644 index 0000000000..f0907f7fda --- /dev/null +++ b/trunk/qpid/cpp/boost-1.32-support/Makefile @@ -0,0 +1,11 @@ +.PHONY: default apply + +default: + @echo "Run 'make apply' to patch the source" + +apply: main.patch ../src/boost + patch -d .. -p0 < main.patch + cat supressions >> ../src/tests/.valgrind.supp + +../src/boost: boost.tar.gz + tar -C .. -xvzf boost.tar.gz diff --git a/trunk/qpid/cpp/boost-1.32-support/README b/trunk/qpid/cpp/boost-1.32-support/README new file mode 100644 index 0000000000..3c0edc8697 --- /dev/null +++ b/trunk/qpid/cpp/boost-1.32-support/README @@ -0,0 +1,8 @@ +For example: + +$ cd qpid/cpp/boost-1.32-support # The directory containing this file +$ make apply +[Some untarring and patching] +$ cd .. + +And then build using the normal methods. diff --git a/trunk/qpid/cpp/boost-1.32-support/boost.tar.gz b/trunk/qpid/cpp/boost-1.32-support/boost.tar.gz new file mode 100644 index 0000000000..7f97622681 Binary files /dev/null and b/trunk/qpid/cpp/boost-1.32-support/boost.tar.gz differ diff --git a/trunk/qpid/cpp/boost-1.32-support/main.patch b/trunk/qpid/cpp/boost-1.32-support/main.patch new file mode 100644 index 0000000000..433a8f0f25 --- /dev/null +++ b/trunk/qpid/cpp/boost-1.32-support/main.patch @@ -0,0 +1,37 @@ +Index: configure.ac +=================================================================== +--- configure.ac (revision 782009) ++++ configure.ac (working copy) +@@ -66,7 +66,6 @@ + # -Wunreachable-code -Wpadded -Winline + # -Wshadow - warns about boost headers. + if test "${enableval}" = yes; then +- gl_COMPILER_FLAGS(-Werror) + gl_COMPILER_FLAGS(-pedantic) + gl_COMPILER_FLAGS(-Wall) + gl_COMPILER_FLAGS(-Wextra) +Index: src/Makefile.am +=================================================================== +--- src/Makefile.am (revision 782009) ++++ src/Makefile.am (working copy) +@@ -59,7 +59,7 @@ + qpid/broker/windows/BrokerDefaults.cpp \ + qpid/broker/windows/SaslAuthenticator.cpp + +-EXTRA_DIST= $(platform_dist) $(rgen_srcs) $(windows_dist) ++EXTRA_DIST= $(platform_dist) $(rgen_srcs) $(windows_dist) $(top_srcdir)/src/boost + + ## Generated code + +Index: examples/makedist.mk +=================================================================== +--- examples/makedist.mk (revision 830311) ++++ examples/makedist.mk (working copy) +@@ -1,6 +1,6 @@ + # Settings to build the examples in automake + AM_CXXFLAGS = $(WARNING_CFLAGS) +-INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include ++INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)/src + CLIENT_LIB=$(top_builddir)/src/libqpidclient.la + CONSOLE_LIB=$(top_builddir)/src/libqmfconsole.la + CLIENTFLAGS=-lqpidclient diff --git a/trunk/qpid/cpp/boost-1.32-support/supressions b/trunk/qpid/cpp/boost-1.32-support/supressions new file mode 100644 index 0000000000..c2b4392566 --- /dev/null +++ b/trunk/qpid/cpp/boost-1.32-support/supressions @@ -0,0 +1,867 @@ +{ + + Memcheck:Leak + fun:calloc + fun:_dl_allocate_tls + fun:pthread_create@@GLIBC_2.2.5 + fun:_ZN4qpid3sys13ThreadPrivateC1EPNS0_8RunnableE +} +{ + + Memcheck:Leak + fun:calloc + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc +} +{ + + Memcheck:Leak + fun:malloc + fun:expand_dynamic_string_token + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc +} +{ + + Memcheck:Leak + fun:calloc + fun:_dl_check_map_versions + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc +} +{ + + Memcheck:Leak + fun:malloc + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc +} +{ + + Memcheck:Leak + fun:calloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc +} +{ + + Memcheck:Leak + fun:malloc + fun:realloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc +} +{ + + Memcheck:Leak + fun:_Znwm + fun:_ZN5boost15program_options19options_description3addERKS1_ + fun:_ZN4qpid3log7OptionsC1ERKSsS3_ + fun:_ZN20ClientSessionFixtureC1EN4qpid6broker6Broker7OptionsE +} +{ + + Memcheck:Leak + fun:_Znwm + fun:_ZNSs4_Rep9_S_createEmmRKSaIcE + obj:/usr/lib64/libstdc++.so.6.0.3 + fun:_ZNSsC1EPKcRKSaIcE + fun:_ZN4qpid34options_description_less_easy_initclEPKcPKN5boost15program_options14value_semanticES2_ + fun:_ZN4qpid3log5posix11SinkOptionsC1ERKSs + fun:_ZN4qpid3log11SinkOptions6createERKSs + fun:_ZN4qpid3log7OptionsC1ERKSsS3_ + fun:_ZN4qpid3log6LoggerC1Ev +} +{ + + Memcheck:Leak + fun:_Znwm + fun:_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs + fun:_ZN4qpid7Options14register_namesESs + fun:_ZN4qpid34options_description_less_easy_initclEPKcPKN5boost15program_options14value_semanticES2_ + fun:_ZN4qpid3log7OptionsC1ERKSsS3_ + fun:_ZN4qpid3log6LoggerC1Ev +} +{ + + Memcheck:Leak + fun:_Znwm + fun:_ZN5boost15program_options29options_description_easy_initclEPKcPKNS0_14value_semanticES3_ + fun:_ZN4qpid34options_description_less_easy_initclEPKcPKN5boost15program_options14value_semanticES2_ +} +{ + + Memcheck:Leak + fun:_Znwm + fun:_ZN5boost15program_options19options_description3addERKS1_ + fun:_ZN4qpid3log7OptionsC1ERKSsS3_ + fun:_ZN13BrokerFixtureC2EN4qpid6broker6Broker7OptionsE + fun:_ZN15SessionFixtureTI15ProxyConnectionN4qpid6client12Session_0_10EEC1ENS1_6broker6Broker7OptionsE +} +{ + + Memcheck:Leak + fun:_Znwm + fun:_ZN5boost15program_options19options_description3addERKS1_ + fun:_ZN4qpid3log7OptionsC1ERKSsS3_ + fun:_ZN4qpid3log6LoggerC1Ev +} +{ + + Memcheck:Leak + fun:_Znwm + fun:_ZN5boost9unit_test9test_caseC2ENS0_13basic_cstringIKcEEbmb +} + +{ + dl_open_1 + Memcheck:Leak + fun:*alloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_sasl_get_plugin + fun:_sasl_load_plugins + fun:sasl_client_init +} +{ + dl_open_2 + Memcheck:Leak + fun:*alloc + fun:_dl_* + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_sasl_get_plugin + fun:_sasl_load_plugins + fun:sasl_client_init +} +{ + dl_open_3 + Memcheck:Leak + fun:malloc + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_sasl_get_plugin + fun:_sasl_load_plugins + fun:sasl_client_init +} +{ + dl_open_4 + Memcheck:Leak + fun:*alloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_sasl_get_plugin + fun:_sasl_load_plugins + fun:sasl_client_init +} +{ + dl_open_5 + Memcheck:Leak + fun:malloc + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_sasl_get_plugin + fun:_sasl_load_plugins + fun:sasl_client_init +} +{ + dl_open_6 + Memcheck:Leak + fun:malloc + fun:expand_dynamic_string_token + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_sasl_get_plugin + fun:_sasl_load_plugins + fun:sasl_client_init +} +{ + dl_open_7 + Memcheck:Leak + fun:malloc + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_8 + Memcheck:Leak + fun:malloc + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + + Memcheck:Leak + fun:calloc + fun:_dlerror_run + fun:dlclose + fun:_sasl_done_with_plugins + fun:sasl_done + fun:__tcf_2 + fun:__cxa_finalize +} +{ + + Memcheck:Leak + fun:calloc + fun:_dl_allocate_tls + fun:pthread_create@@GLIBC_2.2.5 + fun:_ZN4qpid3sys13ThreadPrivateC1EPNS0_8RunnableE + fun:_ZN4qpid3sys6ThreadC1EPNS0_8RunnableE + fun:_ZN4qpid6client12TCPConnector4initEv + fun:_ZN4qpid6client14ConnectionImpl4openEv + fun:_ZN4qpid6client10Connection4openERKNS0_18ConnectionSettingsE + fun:_ZN6ClientC2Ev + fun:main +} +{ + + Memcheck:Leak + fun:calloc + fun:_dl_allocate_tls + fun:pthread_create@@GLIBC_2.2.5 + fun:_ZN4qpid3sys13ThreadPrivateC1EPNS0_8RunnableE + fun:_ZN4qpid3sys6ThreadC1EPNS0_8RunnableE + fun:_ZN4qpid6client12TCPConnector4initEv + fun:_ZN4qpid6client14ConnectionImpl4openEv + fun:_ZN4qpid6client10Connection4openERKNS0_18ConnectionSettingsE + fun:main +} +{ + + Memcheck:Leak + fun:calloc + fun:_dl_allocate_tls + fun:pthread_create@@GLIBC_2.2.5 + fun:_ZN4qpid3sys13ThreadPrivateC1EPNS0_8RunnableE + fun:_ZN4qpid3sys6ThreadC1EPNS0_8RunnableE + fun:_ZN4qpid6client12TCPConnector4initEv + fun:_ZN4qpid6client14ConnectionImpl4openEv + fun:_ZN4qpid6client10Connection4openERKNS0_18ConnectionSettingsE + fun:_ZN4qpid6client10Connection4openERKSsiS3_S3_S3_t + fun:_ZN15ProxyConnectionC1Ei + fun:_ZN15SessionFixtureTI15ProxyConnectionN4qpid6client12Session_0_10EEC1ENS1_6broker6Broker7OptionsE + fun:_Z18DisconnectedListenv + fun:_ZN5boost9unit_test9ut_detail17unit_test_monitor8functionEv + obj:/usr/lib64/libboost_unit_test_framework.so.1.32.0 + fun:_ZN5boost17execution_monitor7executeEbi + fun:_ZN5boost9unit_test9ut_detail17unit_test_monitor21execute_and_translateEPNS0_9test_caseEMS3_FvvEi + fun:_ZN5boost9unit_test9test_case3runEv + fun:_ZN5boost9unit_test10test_suite6do_runEv + fun:_ZN5boost9unit_test9test_case3runEv + fun:main +} +{ + dl_open_9 + Memcheck:Leak + fun:calloc + fun:_dl_check_map_versions + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_10 + Memcheck:Leak + fun:calloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + + Memcheck:Param + socketcall.sendto(msg) + fun:send + fun:get_mapping + fun:__nscd_get_map_ref + fun:nscd_gethst_r + fun:__nscd_gethostbyname2_r + fun:gethostbyname2_r@@GLIBC_2.2.5 + fun:gaih_inet + fun:getaddrinfo + fun:_ZNK4qpid3sys6Socket7connectERKSst + fun:_ZN4qpid6client12TCPConnector7connectERKSsi + fun:_ZN4qpid6client14ConnectionImpl4openEv + fun:_ZN4qpid6client10Connection4openERKNS0_18ConnectionSettingsE + fun:main +} +{ + + Memcheck:Param + socketcall.sendto(msg) + fun:send + fun:get_mapping + fun:__nscd_get_map_ref + fun:nscd_gethst_r + fun:__nscd_gethostbyname2_r + fun:gethostbyname2_r@@GLIBC_2.2.5 + fun:gaih_inet + fun:getaddrinfo + fun:_ZNK4qpid3sys6Socket7connectERKSst + fun:_ZN20ClientSessionFixtureC1Ev + fun:_Z14testXmlBindingv +} +{ + dl_open_11 + Memcheck:Leak + fun:malloc + fun:decompose_rpath + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + + Memcheck:Leak + fun:calloc + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_12 + Memcheck:Leak + fun:malloc + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_13 + Memcheck:Leak + fun:malloc + fun:expand_dynamic_string_token + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_14 + Memcheck:Leak + fun:malloc + fun:realloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_15 + Memcheck:Leak + fun:malloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_16 + Memcheck:Leak + fun:malloc + fun:decompose_rpath + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + + Memcheck:Leak + fun:calloc + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_17 + Memcheck:Leak + fun:malloc + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_18 + Memcheck:Leak + fun:malloc + fun:expand_dynamic_string_token + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_19 + Memcheck:Leak + fun:malloc + fun:realloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_20 + Memcheck:Leak + fun:malloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + + Memcheck:Leak + fun:calloc + fun:_dl_allocate_tls + fun:pthread_create@@GLIBC_2.2.5 + fun:_ZN4qpid3sys13ThreadPrivateC1EPNS0_8RunnableE + fun:_ZN4qpid3sys6ThreadC1EPNS0_8RunnableE + fun:_ZN4qpid3sys5Timer5startEv + fun:_ZN4qpid3sys5TimerC1Ev + fun:_ZN4qpid6broker6BrokerC1ERKNS1_7OptionsE + fun:_ZN4qpid6broker6Broker6createERKNS1_7OptionsE + fun:_ZN20ClientSessionFixtureC1Ev + fun:_Z14testXmlBindingv +} +{ + dl_open_21 + Memcheck:Leak + fun:malloc + fun:decompose_rpath + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + + Memcheck:Leak + fun:calloc + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_22 + Memcheck:Leak + fun:malloc + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_23 + Memcheck:Leak + fun:malloc + fun:expand_dynamic_string_token + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_24 + Memcheck:Leak + fun:malloc + fun:realloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + dl_open_25 + Memcheck:Leak + fun:malloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 + fun:_ZN4qpid3sys5Shlib4loadEPKc + fun:_GLOBAL__I__ZN53_GLOBAL__N_XmlClientSessionTest.cpp_CF4CBC2E_2FCE92D42_1E +} +{ + + Memcheck:Param + socketcall.sendto(msg) + fun:send + fun:get_mapping + fun:__nscd_get_map_ref + fun:nscd_gethst_r + fun:__nscd_gethostbyname2_r + fun:gethostbyname2_r@@GLIBC_2.2.5 + fun:gaih_inet + fun:getaddrinfo + fun:_ZNK4qpid3sys6Socket7connectERKSst + fun:_ZN4qpid6client12TCPConnector7connectERKSsi + fun:_ZN4qpid6client14ConnectionImpl4openEv + fun:_ZN4qpid6client10Connection4openERKNS0_18ConnectionSettingsE + fun:_ZN6ClientC2Ev + fun:main +} +{ + + Memcheck:Leak + fun:calloc + fun:_dlerror_run + fun:dlclose + fun:_sasl_done_with_plugins + fun:sasl_done + fun:__tcf_2 + fun:__cxa_finalize +} +{ + + Memcheck:Leak + fun:calloc + fun:_dl_allocate_tls + fun:pthread_create@@GLIBC_2.2.5 + fun:_ZN4qpid3sys13ThreadPrivateC1EPNS0_8RunnableE + fun:_ZN4qpid3sys6ThreadC1EPNS0_8RunnableE + fun:_ZN4qpid6client12TCPConnector4initEv + fun:_ZN4qpid6client14ConnectionImpl4openEv + fun:_ZN4qpid6client10Connection4openERKNS0_18ConnectionSettingsE + fun:_ZN6ClientC2Ev + fun:main +} +{ + + Memcheck:Param + socketcall.sendto(msg) + fun:send + fun:get_mapping + fun:__nscd_get_map_ref + fun:nscd_gethst_r + fun:__nscd_gethostbyname2_r + fun:gethostbyname2_r@@GLIBC_2.2.5 + fun:gaih_inet + fun:getaddrinfo + fun:_ZNK4qpid3sys6Socket7connectERKSst +} +{ + dl 0 + Memcheck:Leak + fun:*dl* +} + +{ + dl 1 + Memcheck:Leak + fun:* + fun:*dl* +} + +{ + dl 2 + fun:* + fun:* + Memcheck:Leak + fun:*dl* +} + +{ + Znwm + Memcheck:Leak + fun:_Znwm +} + +{ + Znwj + Memcheck:Leak + fun:_Znwj +} + +{ + Znaj + Memcheck:Leak + fun:_Znaj +} + +{ + libc res nsend + Memcheck:Leak + fun:malloc + fun:__libc_res_nsend +} + +{ + new exitfn + Memcheck:Leak + fun:malloc + fun:__new_exitfn +} + +{ + pthread mutex unlock + Memcheck:Param + futex(uaddr2) + fun:__lll_mutex_unlock_wake + fun:pthread_mutex_unlock +} + +{ + sasl 1 + Memcheck:Leak + fun:* + fun:sasl* +} + +{ + sasl 2 + Memcheck:Leak + fun:* + obj:* + fun:sasl* +} + diff --git a/trunk/qpid/cpp/bootstrap b/trunk/qpid/cpp/bootstrap new file mode 100755 index 0000000000..5f33fec63f --- /dev/null +++ b/trunk/qpid/cpp/bootstrap @@ -0,0 +1,27 @@ +#!/bin/sh +set -e +aclocal -I m4 +autoheader +libtoolize --automake + +# Create initial Makefile fragments that will force make to generate +# the real ones. +cat > src/rubygen.mk < src/managementgen.mk <. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand `-c -o'. +Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file `INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; +esac + +ofile= +cfile= +eat= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as `compile cc -o foo foo.c'. + # So we strip `-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no `-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # `.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` + +# Create the lock directory. +# Note: use `[/.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/trunk/qpid/cpp/build-aux/config.guess b/trunk/qpid/cpp/build-aux/config.guess new file mode 100755 index 0000000000..c93201a4d2 --- /dev/null +++ b/trunk/qpid/cpp/build-aux/config.guess @@ -0,0 +1,1501 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. + +timestamp='2006-11-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + x86:Interix*:[3456]*) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T:Interix*:[3456]* | authenticamd:Interix*:[3456]*) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/trunk/qpid/cpp/build-aux/config.rpath b/trunk/qpid/cpp/build-aux/config.rpath new file mode 100755 index 0000000000..c492a93b66 --- /dev/null +++ b/trunk/qpid/cpp/build-aux/config.rpath @@ -0,0 +1,614 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2006 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit , 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# known workaround is to choose shorter directory names for the build +# directory and/or the installation directory. + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + darwin*) + case $cc_basename in + xlc*) + wl='-Wl,' + ;; + esac + ;; + mingw* | pw32* | os2*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + newsos6) + ;; + linux*) + case $cc_basename in + icc* | ecc*) + wl='-Wl,' + ;; + pgcc | pgf77 | pgf90) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + sco3.2v5*) + ;; + solaris*) + wl='-Wl,' + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we cannot use + # them. + ld_shlibs=no + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + interix3*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct=yes + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if test "$GCC" = yes ; then + : + else + case $cc_basename in + xlc*) + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd1*) + ld_shlibs=no + ;; + freebsd2.2*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + freebsd2*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + openbsd*) + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. +libname_spec='lib$name' +case "$host_os" in + aix3*) + ;; + aix4* | aix5*) + ;; + amigaos*) + ;; + beos*) + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32*) + shrext=.dll + ;; + darwin* | rhapsody*) + shrext=.dylib + ;; + dgux*) + ;; + freebsd1*) + ;; + kfreebsd*-gnu) + ;; + freebsd* | dragonfly*) + ;; + gnu*) + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + ;; + interix3*) + ;; + irix5* | irix6* | nonstopux*) + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux*) + ;; + knetbsd*-gnu) + ;; + netbsd*) + ;; + newsos6) + ;; + nto-qnx*) + ;; + openbsd*) + ;; + os2*) + libname_spec='$name' + shrext=.dll + ;; + osf3* | osf4* | osf5*) + ;; + solaris*) + ;; + sunos4*) + ;; + sysv4 | sysv4.3*) + ;; + sysv4*MP*) + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + ;; + uts4*) + ;; +esac + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` +shlibext=`echo "$shrext" | sed -e 's,^\.,,'` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | score \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/trunk/qpid/cpp/build-aux/depcomp b/trunk/qpid/cpp/build-aux/depcomp new file mode 100755 index 0000000000..ca5ea4e1ef --- /dev/null +++ b/trunk/qpid/cpp/build-aux/depcomp @@ -0,0 +1,584 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2006-10-15.18 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software +# Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + stat=$? + + if test -f "$tmpdepfile"; then : + else + stripped=`echo "$stripped" | sed 's,^.*/,,'` + tmpdepfile="$stripped.u" + fi + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + outname="$stripped.o" + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/trunk/qpid/cpp/build-aux/install-sh b/trunk/qpid/cpp/build-aux/install-sh new file mode 100755 index 0000000000..4fbbae7b7f --- /dev/null +++ b/trunk/qpid/cpp/build-aux/install-sh @@ -0,0 +1,507 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2006-10-14.15 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +posix_glob= +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chmodcmd=$chmodprog +chowncmd= +chgrpcmd= +stripcmd= +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src= +dst= +dir_arg= +dstarg= +no_target_directory= + +usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: +-c (ignored) +-d create directories instead of installing files. +-g GROUP $chgrpprog installed files to GROUP. +-m MODE $chmodprog installed files to MODE. +-o USER $chownprog installed files to USER. +-s $stripprog installed files. +-t DIRECTORY install into DIRECTORY. +-T report an error if DSTFILE is a directory. +--help display this help and exit. +--version display version info and exit. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + shift + shift + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -s) stripcmd=$stripprog + shift + continue;; + + -t) dstarg=$2 + shift + shift + continue;; + + -T) no_target_directory=true + shift + continue;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac +done + +if test $# -ne 0 && test -z "$dir_arg$dstarg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dstarg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dstarg" + shift # fnord + fi + shift # arg + dstarg=$arg + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src ;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dstarg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dstarg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst ;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dstarg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix=/ ;; + -*) prefix=./ ;; + *) prefix= ;; + esac + + case $posix_glob in + '') + if (set -f) 2>/dev/null; then + posix_glob=true + else + posix_glob=false + fi ;; + esac + + oIFS=$IFS + IFS=/ + $posix_glob && set -f + set fnord $dstdir + shift + $posix_glob && set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # Now rename the file to the real destination. + { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \ + || { + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + if test -f "$dst"; then + $doit $rmcmd -f "$dst" 2>/dev/null \ + || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \ + && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\ + || { + echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + else + : + fi + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + } || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/trunk/qpid/cpp/build-aux/mdate-sh b/trunk/qpid/cpp/build-aux/mdate-sh new file mode 100755 index 0000000000..cd916c0a34 --- /dev/null +++ b/trunk/qpid/cpp/build-aux/mdate-sh @@ -0,0 +1,201 @@ +#!/bin/sh +# Get modification time of a file or directory and pretty-print it. + +scriptversion=2005-06-29.22 + +# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005 Free Software +# Foundation, Inc. +# written by Ulrich Drepper , June 1995 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No file. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: mdate-sh [--help] [--version] FILE + +Pretty-print the modification time of FILE. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "mdate-sh $scriptversion" + exit $? + ;; +esac + +# Prevent date giving response in another language. +LANG=C +export LANG +LC_ALL=C +export LC_ALL +LC_TIME=C +export LC_TIME + +# GNU ls changes its time format in response to the TIME_STYLE +# variable. Since we cannot assume `unset' works, revert this +# variable to its documented default. +if test "${TIME_STYLE+set}" = set; then + TIME_STYLE=posix-long-iso + export TIME_STYLE +fi + +save_arg1=$1 + +# Find out how to get the extended ls output of a file or directory. +if ls -L /dev/null 1>/dev/null 2>&1; then + ls_command='ls -L -l -d' +else + ls_command='ls -l -d' +fi + +# A `ls -l' line looks as follows on OS/2. +# drwxrwx--- 0 Aug 11 2001 foo +# This differs from Unix, which adds ownership information. +# drwxrwx--- 2 root root 4096 Aug 11 2001 foo +# +# To find the date, we split the line on spaces and iterate on words +# until we find a month. This cannot work with files whose owner is a +# user named `Jan', or `Feb', etc. However, it's unlikely that `/' +# will be owned by a user whose name is a month. So we first look at +# the extended ls output of the root directory to decide how many +# words should be skipped to get the date. + +# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. +set x`ls -l -d /` + +# Find which argument is the month. +month= +command= +until test $month +do + shift + # Add another shift to the command. + command="$command shift;" + case $1 in + Jan) month=January; nummonth=1;; + Feb) month=February; nummonth=2;; + Mar) month=March; nummonth=3;; + Apr) month=April; nummonth=4;; + May) month=May; nummonth=5;; + Jun) month=June; nummonth=6;; + Jul) month=July; nummonth=7;; + Aug) month=August; nummonth=8;; + Sep) month=September; nummonth=9;; + Oct) month=October; nummonth=10;; + Nov) month=November; nummonth=11;; + Dec) month=December; nummonth=12;; + esac +done + +# Get the extended ls output of the file or directory. +set dummy x`eval "$ls_command \"\$save_arg1\""` + +# Remove all preceding arguments +eval $command + +# Because of the dummy argument above, month is in $2. +# +# On a POSIX system, we should have +# +# $# = 5 +# $1 = file size +# $2 = month +# $3 = day +# $4 = year or time +# $5 = filename +# +# On Darwin 7.7.0 and 7.6.0, we have +# +# $# = 4 +# $1 = day +# $2 = month +# $3 = year or time +# $4 = filename + +# Get the month. +case $2 in + Jan) month=January; nummonth=1;; + Feb) month=February; nummonth=2;; + Mar) month=March; nummonth=3;; + Apr) month=April; nummonth=4;; + May) month=May; nummonth=5;; + Jun) month=June; nummonth=6;; + Jul) month=July; nummonth=7;; + Aug) month=August; nummonth=8;; + Sep) month=September; nummonth=9;; + Oct) month=October; nummonth=10;; + Nov) month=November; nummonth=11;; + Dec) month=December; nummonth=12;; +esac + +case $3 in + ???*) day=$1;; + *) day=$3; shift;; +esac + +# Here we have to deal with the problem that the ls output gives either +# the time of day or the year. +case $3 in + *:*) set `date`; eval year=\$$# + case $2 in + Jan) nummonthtod=1;; + Feb) nummonthtod=2;; + Mar) nummonthtod=3;; + Apr) nummonthtod=4;; + May) nummonthtod=5;; + Jun) nummonthtod=6;; + Jul) nummonthtod=7;; + Aug) nummonthtod=8;; + Sep) nummonthtod=9;; + Oct) nummonthtod=10;; + Nov) nummonthtod=11;; + Dec) nummonthtod=12;; + esac + # For the first six month of the year the time notation can also + # be used for files modified in the last year. + if (expr $nummonth \> $nummonthtod) > /dev/null; + then + year=`expr $year - 1` + fi;; + *) year=$3;; +esac + +# The result. +echo $day $month $year + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/trunk/qpid/cpp/build-aux/missing b/trunk/qpid/cpp/build-aux/missing new file mode 100755 index 0000000000..1c8ff7049d --- /dev/null +++ b/trunk/qpid/cpp/build-aux/missing @@ -0,0 +1,367 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2006-05-10.23 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case $1 in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $1 in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/trunk/qpid/cpp/configure.ac b/trunk/qpid/cpp/configure.ac new file mode 100644 index 0000000000..5603f70f60 --- /dev/null +++ b/trunk/qpid/cpp/configure.ac @@ -0,0 +1,534 @@ +dnl Process this file with autoconf to produce a configure script. +dnl +dnl This file is free software; as a special exception the author gives +dnl unlimited permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +dnl +dnl When updating the name/version number here, also update it in +dnl src/qpid/Version.h + +AC_INIT([qpidc], [0.6], [dev@qpid.apache.org]) +AC_CONFIG_AUX_DIR([build-aux]) +AM_INIT_AUTOMAKE([dist-bzip2 subdir-objects]) + +# Minimum Autoconf version required. +AC_PREREQ(2.59) + +AC_CONFIG_HEADERS([src/config.h]) + +AC_PROG_CC_STDC +AM_PROG_CC_C_O +AC_PROG_CXX +AC_USE_SYSTEM_EXTENSIONS +AC_LANG([C++]) + +# Check for optional use of help2man +AC_CHECK_PROG([HELP2MAN], [help2man], [help2man]) +AC_ARG_WITH([help2man], + [AS_HELP_STRING([--with-help2man], [Use help2man to generate man pages.])], + [case "$withval" in + yes) test -z "$HELP2MAN" && AC_MSG_ERROR([help2man not found.]) ;; + no) HELP2MAN="" ;; + *) AC_MSG_ERROR([Bad value ${withval} for --with-help2man.]) ;; + esac]) +AM_CONDITIONAL([HAVE_HELP2MAN], [test -n "$HELP2MAN"]) + +# Check for optional use of doxygen +AC_CHECK_PROG([DOXYGEN], [doxygen], [doxygen]) +AC_ARG_WITH([doxygen], + [AS_HELP_STRING([--with-doxygen], [Use doxygen to generate API documentation.])], + [case "$withval" in + yes) test -z "$DOXYGEN" && AC_MSG_ERROR([doxygen not found.]) ;; + no) DOXYGEN="" ;; + *) AC_MSG_ERROR([Bad value ${withval} for --with-doxygen.]) ;; + esac]) +AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"]) + +AC_ARG_ENABLE(warnings, +[ --enable-warnings turn on lots of compiler warnings (recommended)], +[case "${enableval}" in + yes|no) ;; + *) AC_MSG_ERROR([bad value ${enableval} for warnings option]) ;; + esac], + [enableval=yes]) + +# Set up for gcc as compiler +if test x$GXX = xyes; then + # Warnings: Enable as many as possible, keep the code clean. Please + # do not disable warnings or remove -Werror without discussing on + # qpid-dev list. + # + # The following warnings are deliberately omitted, they warn on valid code. + # -Wunreachable-code -Wpadded -Winline + # -Wshadow - warns about boost headers. + if test "${enableval}" = yes; then + gl_COMPILER_FLAGS(-Werror) + gl_COMPILER_FLAGS(-pedantic) + gl_COMPILER_FLAGS(-Wall) + gl_COMPILER_FLAGS(-Wextra) + gl_COMPILER_FLAGS(-Wno-shadow) + gl_COMPILER_FLAGS(-Wpointer-arith) + gl_COMPILER_FLAGS(-Wcast-qual) + gl_COMPILER_FLAGS(-Wcast-align) + gl_COMPILER_FLAGS(-Wno-long-long) + gl_COMPILER_FLAGS(-Wvolatile-register-var) + gl_COMPILER_FLAGS(-Winvalid-pch) + gl_COMPILER_FLAGS(-Wno-system-headers) + gl_COMPILER_FLAGS(-Woverloaded-virtual) + AC_SUBST([WARNING_CFLAGS], [$COMPILER_FLAGS]) + AC_DEFINE([lint], 1, [Define to 1 if the compiler is checking for lint.]) + COMPILER_FLAGS= + fi +else + AC_CHECK_DECL([__SUNPRO_CC], [SUNCC=yes], [SUNCC=no]) + + # Set up for sun CC compiler + if test x$SUNCC = xyes; then + if test "${enableval}" = yes; then + WARNING_FLAGS=+w + fi + CXXFLAGS="$CXXFLAGS -library=stlport4 -mt" + LD="$CXX" + LDFLAGS="$LDFLAGS -library=stlport4 -mt" + AC_SUBST([SUNCC_RUNTIME_LIBS], [-lCrun]) + fi +fi + +AC_DISABLE_STATIC +AC_PROG_LIBTOOL +AC_SUBST([LIBTOOL_DEPS]) + +# For libraries (libcommon) that use dlopen, dlerror, etc., +# test whether we need to link with -ldl. +gl_saved_libs=$LIBS + AC_SEARCH_LIBS(dlopen, [dl], + [test "$ac_cv_search_dlopen" = "none required" || + LIB_DLOPEN=$ac_cv_search_dlopen]) + AC_SUBST([LIB_DLOPEN]) +LIBS=$gl_saved_libs + +# Set the argument to be used in "libtool -version-info ARG". +QPID_CURRENT=2 +QPID_REVISION=0 +QPID_AGE=0 +LIBTOOL_VERSION_INFO_ARG=$QPID_CURRENT:$QPID_REVISION:$QPID_AGE +AC_SUBST(LIBTOOL_VERSION_INFO_ARG) + +gl_CLOCK_TIME + +# Enable Valgrind +AC_ARG_ENABLE([valgrind], + [AS_HELP_STRING([--enable-valgrind], + [run valgrind memory checker on tests, if available (default yes)])], + [case $enableval in + yes|no) enable_VALGRIND=$enableval;; + *) AC_MSG_ERROR([Invalid value for --enable-valgrind: $enableval]);; + esac], + [enable_VALGRIND=yes] +) + +# We use valgrind for the tests. See if it's available. +# Check for it unconditionally, so we don't have to duplicate its +# use of AC_SUBST([VALGRIND]). +AC_CHECK_PROG([VALGRIND], [valgrind], [valgrind]) +test "$enable_VALGRIND" = no && VALGRIND= + +# If rpmlint is available we'll run it when building RPMs. +AC_CHECK_PROG([RPMLINT], [rpmlint], [rpmlint]) +AM_CONDITIONAL([HAS_RPMLINT], [test -n "$RPMLINT"]) + +# Code generation: generated code is included in the distribution +# so code generation is only required in an svn checkout. +# It requires several external tools and files, which we check for here. + +AC_CHECK_PROG([RUBY], [ruby], [ruby]) + +# Swig binding generator is needed for the script (Ruby, Python, etc.) bindings. +AC_PROG_SWIG(1.3.26) +test ! -x "$SWIG" && SWIG="" +AC_ARG_WITH([swig], + [AS_HELP_STRING([--with-swig], [Use swig to generate qmf bindings.])], + [case "$withval" in + yes) test -z "$SWIG" && AC_MSG_ERROR([swig not found.]) ;; + no) SWIG="" ;; + *) AC_MSG_ERROR([Bad value ${withval} for --with-swig.]) ;; + esac]) +AM_CONDITIONAL([HAVE_SWIG], [test -n "$SWIG"]) + +# Ruby bindings: To build ruby wrappers, the ruby-devel files must be present. + +AC_PATH_PROGS(RUBY, [ruby1.8 ruby], []) +AC_ARG_VAR(RUBY, [Ruby interpreter]) +if test -n "$RUBY" ; then + AC_ARG_VAR(RUBY_INC, [Directory where ruby.h can be found]) + if test -z "$RUBY_INC" ; then + [RUBY_INC=`$RUBY -rrbconfig -e 'puts Config::CONFIG["rubyhdrdir"] || Config::CONFIG["archdir"]'`] + fi + AC_SUBST(RUBY_INC) + + AC_ARG_VAR(RUBY_INC_ARCH, [Directory where ruby/config.h can be found (needed from Ruby 1.9)]) + if test -z "$RUBY_INC_ARCH" ; then + [RUBY_INC_ARCH=`$RUBY -rrbconfig -e 'd = Config::CONFIG["rubyhdrdir"];if d != nil; print d + "/" + Config::CONFIG["arch"]; end'`] + dnl For earlier versions, just make it the same as RUBY_INC. + test x"$RUBY_INC_ARCH" != x || RUBY_INC_ARCH=$RUBY_INC + fi + AC_SUBST(RUBY_INC_ARCH) + AC_ARG_VAR(RUBY_LIB, [Directory to install ruby files into]) + if test -z "$RUBY_LIB" ; then + dnl Kludge to install ruby files under $prefix + [RUBY_LIB=`$RUBY -rrbconfig -e 'puts Config::CONFIG["sitelibdir"].gsub("/usr", "${prefix}")'`] + fi + AC_SUBST(RUBY_LIB) + + AC_ARG_VAR(RUBY_LIB_ARCH, [Directory to install ruby binary modules into]) + if test -z "$RUBY_LIB_ARCH" ; then + dnl Kludge to install ruby files under $prefix + [RUBY_LIB_ARCH=`$RUBY -rrbconfig -e 'puts Config::CONFIG["sitearchdir"].gsub("/usr", "${prefix}")'`] + fi + AC_SUBST(RUBY_LIB_ARCH) + + RUBY_LIBS= + case $host_os in + cygwin*) RUBY_LIBS=-lruby ;; + esac + AC_SUBST(RUBY_LIBS) + + RUBY_DLEXT=`$RUBY -rrbconfig -e 'puts Config::CONFIG[["DLEXT"]]'` + AC_SUBST(RUBY_DLEXT) +fi +AM_CONDITIONAL([HAVE_RUBY_DEVEL], [test -f $RUBY_INC/ruby.h && test -n "$SWIG"]) + +# Python bindings: To build python wrappers, the ruby-devel files must be present. + +AM_PATH_PYTHON() +if test -n "$PYTHON" ; then + AC_MSG_CHECKING([$PYTHON include dir]) + if $PYTHON -c 'import distutils.sysconfig' 2>/dev/null ; then + PYTHON_INC=`$PYTHON -c 'import os,distutils.sysconfig;print(distutils.sysconfig.get_python_inc().replace(os.sep,"/"))'` + AC_SUBST(PYTHON_INC) + else + if test yes = "$with_python" ; then + AC_MSG_ERROR([Couldn't import Python module distutils.sysconfig - you probably need to install a python-dev or python-devel package]) + else + AC_MSG_WARN([Couldn't import Python module distutils.sysconfig - you probably don't have a python-dev or python-devel package installed]) + fi + fi + AC_MSG_RESULT([$PYTHON_INC]) + AC_MSG_CHECKING([for directory to install python bindings in]) + if test -z "$PYTHON_LIB" ; then + PYTHON_LIB=`$PYTHON -c 'import os,distutils.sysconfig;print(distutils.sysconfig.get_python_lib(1).replace(os.sep,"/"))'` + fi + AC_MSG_RESULT([$PYTHON_LIB]) + AC_ARG_VAR(PYTHON_LIB, [Directory to install python bindings in]) + + AC_MSG_CHECKING([for python libraries to link against]) + PYTHON_LIBS=`$PYTHON -c 'import os,sys;print("-L"+os.path.join(sys.path[[3]],"config")+" -lpython"+sys.version[[:3]])'` + AC_SUBST(PYTHON_LIBS) + AC_MSG_RESULT([$PYTHON_LIBS]) +fi +AM_CONDITIONAL([HAVE_PYTHON_DEVEL], [test -f $PYTHON_INC/Python.h && test -n "$SWIG"]) + + +specdir=`pwd`/$srcdir/../specs +AMQP_FINAL_XML=$specdir/amqp.0-10-qpid-errata.xml +AC_SUBST(AMQP_FINAL_XML) +AM_CONDITIONAL([GENERATE], [test -f $AMQP_FINAL_XML]) +test -f $AMQP_FINAL_XML -a -z "$RUBY" && AC_MSG_ERROR([Missing ruby installation (try "yum install ruby").]) + +# URL and download URL for the package. +URL=http://rhm.et.redhat.com/qpidc +AC_SUBST(URL) +DOWNLOAD_URL=http://rhm.et.redhat.com/download +AC_SUBST(DOWNLOAD_URL) + +# Check for headers from required devel kits. +AC_CHECK_HEADERS([boost/shared_ptr.hpp uuid/uuid.h],, + AC_MSG_ERROR([Missing required header files.])) + +# Check for optional cluster requirements. +tmp_LIBS=$LIBS +tmp_LDFLAGS=$LDFLAGS +LDFLAGS="$LDFLAGS -L/usr/lib/openais -L/usr/lib64/openais -L/usr/lib/corosync -L/usr/lib64/corosync" +AC_CHECK_LIB([cpg],[cpg_local_get],[have_libcpg=yes],) +AC_CHECK_HEADERS([openais/cpg.h corosync/cpg.h],[have_cpg_h=yes],) +AC_ARG_WITH([cpg], + [AS_HELP_STRING([--with-cpg], [Build with CPG support for clustering.])], + [case "${withval}" in + yes) # yes - require dependencies + test x$have_libcpg = xyes || AC_MSG_ERROR([libcpg not found, install openais-devel or corosync-devel]) + test x$have_cpg_h = xyes || AC_MSG_ERROR([cpg.h not found, install openais-devel or corosync-devel]) + with_cpg=yes + ;; + no) with_cpg=no ;; + *) AC_MSG_ERROR([Bad value ${withval} for --with-cpg option]) ;; + esac], + [ # not specified - use if present + test x$have_libcpg = xyes -a x$have_cpg_h = xyes && with_cpg=yes + ] +) +AM_CONDITIONAL([HAVE_LIBCPG], [test x$with_cpg = xyes]) +# Clean up unnceccassary flags if we don't use clustering +AS_IF([test ! x$with_cpg = xyes], [LDFLAGS=$tmp_LDFLAGS]) + +AC_CHECK_LIB([cman],[cman_is_quorate],have_libcman=yes,) +AC_CHECK_HEADERS([libcman.h],have_libcman_h=yes,) +AC_ARG_WITH([libcman], + [AS_HELP_STRING([--with-libcman], [Integration with libcman quorum service.])], + [case "${withval}" in + yes) # yes - require dependencies + test x$have_libcman = xyes || AC_MSG_ERROR([libcman not found, install cman-devel or cmanlib-devel]) + test x$have_libcman_h = xyes || AC_MSG_ERROR([libcman.h not found, install cman-devel or cmanlib-devel]) + with_libcman=yes + ;; + no) with_libcman=no ;; + *) AC_MSG_ERROR([Bad value ${withval} for --with-libcman option]) ;; + esac], + [ # not specified - use if present and we're using with_cpg + test x$have_libcman = xyes -a x$have_libcman_h = xyes -a x$with_cpg = xyes && with_libcman=yes + ] +) +AM_CONDITIONAL([HAVE_LIBCMAN], [test x$with_libcman = xyes]) + +LIBS=$tmp_LIBS + +# Setup --with-sasl/--without-sasl as arguments to configure +AC_ARG_WITH([sasl], + [AS_HELP_STRING([--with-sasl], [Build with SASL authentication support])], + [WANT_SASL="$withval"], + [WANT_SASL=check]) + +# Make sure --with-sasl/--without-sasl were only give yes|no|check +AS_IF([test "x$WANT_SASL" != xyes -a \ + "x$WANT_SASL" != xno -a \ + "x$WANT_SASL" != xcheck], + [AC_MSG_ERROR([Bad value for --with-sasl: $withval])]) + +# If we weren't explicitly asked /not/ to test, i.e. not given --without-sasl +have_sasl=no +AS_IF([test "x$WANT_SASL" != xno], + # Perform tests for headers and libraries. Remember, AC_CHECK_LIB + # will give you some useful default behavior, e.g. setup LDFLAGS, if + # you do not give it a second argument, so try not to + [AC_CHECK_HEADER([sasl/sasl.h], , [HAVE_SASL_H=no]) + tmp_LIBS=$LIBS + AC_CHECK_LIB([sasl2], [sasl_checkpass], , [HAVE_SASL_LIB=no]) + # Remove from LIBS, we will link it explicitly in make files. + LIBS=$tmp_LIBS + # If any of the tests failed + AS_IF([test "x$HAVE_SASL_H" = xno -o \ + "x$HAVE_SASL_LIB" = xno], + # And we were given --with, then fail + [AS_IF([test "x$WANT_SASL" = xyes], + [AC_MSG_ERROR([sasl requested but not available])])], + # Otherwise, no tests failed, setup AC_SUBST/AC_DEFINE/vars for AM_CONDITIONALs + [AC_DEFINE([BROKER_SASL_NAME], ["qpidd"], + [The SASL app name for the qpid Broker]) + AC_DEFINE([HAVE_SASL], [1], [Enable if libsasl is present]) + have_sasl=yes])]) +AM_CONDITIONAL([HAVE_SASL], [test "x$have_sasl" = xyes]) + + +# Setup --with-xml/--without-xml as arguments to configure +use_xml=yes +want_xml=check +AC_ARG_WITH([xml], + [AS_HELP_STRING([--with-xml], [Build with XML Exchange])], + [want_xml=$withval]) + +case $want_xml in + yes|no|check) ;; + *) AC_MSG_ERROR([Bad value for --with-xml: $withval]) ;; +esac + +test $want_xml = no && use_xml=no + +# If the user doesn't say not to use XML, see if it's available. +if test $use_xml != no; then + # Then see if XQilla is available + tmp_LIBS=$LIBS + AC_CHECK_LIB([xerces-c], [_init], , [use_xml=no]) + AC_CHECK_HEADER([xercesc/framework/MemBufInputSource.hpp], , [use_xml=no]) + AC_CHECK_HEADER([xqilla/xqilla-simple.hpp], , [use_xml=no]) + AC_CHECK_LIB([xqilla], [_init], , [use_xml=no]) + # Remove from LIBS, we will link it explicitly in make files. + LIBS=$tmp_LIBS + + # If XQilla is not available, yet specifically requested, die. + test $use_xml:$want_xml = no:yes && + AC_MSG_ERROR([XML Exchange requested, but XQilla or Xerces-C not available]) + + # Else XQilla is available - use it to build + test $use_xml = yes && + AC_DEFINE([HAVE_XML], [1], [Compile-in XML Exchange support.]) +fi + +AM_CONDITIONAL([HAVE_XML], [test $use_xml = yes]) + +# Setup --with-rdma/--without-rdma as arguments to configure +tmp_LIBS=$LIBS +AC_ARG_WITH([rdma], + [AS_HELP_STRING([--with-rdma], [Build with support for Remote DMA protocols])], + [case ${withval} in + yes) + with_RDMA=yes + AC_CHECK_LIB([ibverbs],[ibv_create_qp],,[AC_MSG_ERROR([libibverbs not found])]) + AC_CHECK_LIB([rdmacm],[rdma_create_id],,[AC_MSG_ERROR([librdmacm not found])]) + AC_CHECK_HEADERS([infiniband/verbs.h],,[AC_MSG_ERROR([ibverbs header files not found])]) + AC_CHECK_HEADERS([rdma/rdma_cma.h],,[AC_MSG_ERROR([rdma_cm header files not found])]) + ;; + no) + with_RDMA=no + ;; + *) + AC_MSG_ERROR([Bad value for --with-rdma: ${withval}]) + ;; + esac], + [ + with_RDMA=yes + AC_CHECK_LIB([ibverbs],[ibv_create_qp],,[with_RDMA=no]) + AC_CHECK_LIB([rdmacm],[rdma_create_id],,[with_RDMA=no]) + AC_CHECK_HEADERS([infiniband/verbs.h],,[with_RDMA=no]) + AC_CHECK_HEADERS([rdma/rdma_cma.h],,[with_RDMA=no]) + ] +) +# Remove from LIBS, we will link it explicitly in make files. +LIBS=$tmp_LIBS +AM_CONDITIONAL([RDMA], [test x$with_RDMA = xyes]) + +# Setup --with-ssl/--without-ssl as arguments to configure +SSL_CFLAGS="" +SSL_LDFLAGS="" +AC_ARG_WITH([ssl], + [AS_HELP_STRING([--with-ssl], [Build with support for SSL])], + [case ${withval} in + yes) + with_SSL=yes + AC_PATH_PROG([NSPR_CONFIG], [nspr-config]) + AS_IF([test x$NSPR_CONFIG = x], [AC_MSG_ERROR([libnspr not found])], []) + AC_PATH_PROG([NSS_CONFIG], [nss-config]) + AS_IF([test x$NSS_CONFIG = x], [AC_MSG_ERROR([libnss not found])], []) + SSL_CFLAGS="`$NSPR_CONFIG --cflags` `$NSS_CONFIG --cflags`" + SSL_LDFLAGS="`$NSPR_CONFIG --libs` `$NSS_CONFIG --libs`" + ;; + no) + with_SSL=no + ;; + *) + AC_MSG_ERROR([Bad value for --with-ssl: ${withval}]) + ;; + esac], + [ + with_SSL=yes + AC_PATH_PROG([NSPR_CONFIG], [nspr-config]) + AS_IF([test x$NSPR_CONFIG = x], [with_SSL=no], + [AC_PATH_PROG([NSS_CONFIG], [nss-config]) + AS_IF([test x$NSS_CONFIG = x], [with_SSL=no], + [SSL_CFLAGS="`$NSPR_CONFIG --cflags` `$NSS_CONFIG --cflags`" + SSL_LDFLAGS="`$NSPR_CONFIG --libs` `$NSS_CONFIG --libs`"])]) + ] +) +# Remove from LIBS, we will link it explicitly in make files. +AM_CONDITIONAL([SSL], [test x$with_SSL = xyes]) +AC_SUBST([SSL_CFLAGS]) +AC_SUBST([SSL_LDFLAGS]) + + +poller=no +AC_ARG_WITH([poller], + [AS_HELP_STRING([--with-poller], [The low level poller implementation: poll/solaris-ecf/epoll])], + [case ${withval} in + poll) + AC_CHECK_HEADERS([sys/poll.h],[poller=no],[AC_MSG_ERROR([Can't find poll.h header file for poll])]) + ;; + solaris-ecf) + AC_CHECK_HEADERS([port.h],[poller=solaris-ecf],[AC_MSG_ERROR([Can't find port.h header file for solaris-ecf])]) + ;; + epoll) + AC_CHECK_HEADERS([sys/epoll.h],[poller=epoll],[AC_MSG_ERROR([Can't find epoll.h header file for epoll])]) + ;; + esac], + [ + AC_CHECK_HEADERS([sys/poll.h],[poller=no],) + AC_CHECK_HEADERS([port.h],[poller=solaris-ecf],) + AC_CHECK_HEADERS([sys/epoll.h],[poller=epoll],) + ] +) + +AM_CONDITIONAL([HAVE_ECF], [test x$poller = xsolaris-ecf]) +AM_CONDITIONAL([HAVE_EPOLL], [test x$poller = xepoll]) + +#Filter not implemented or invalid mechanisms +if test $poller = xno; then + AC_MSG_ERROR([Polling mechanism not implemented for $host]) +fi + +#Guess host architecture, to choose platform-dependent objects +case "$host" in + *sun-solaris*) + arch=solaris + ;; +esac +AM_CONDITIONAL([SUNOS], [test x$arch = xsolaris]) + +# Check for some syslog capabilities not present in all systems +AC_TRY_COMPILE([#include ], + [int v = LOG_AUTHPRIV;], + [AC_DEFINE([HAVE_LOG_AUTHPRIV], [1], [Set to 1 whether LOG_AUTHPRIV is supported.])],) + +AC_TRY_COMPILE([#include ], + [int v = LOG_FTP;], + [AC_DEFINE([HAVE_LOG_FTP], [1], [Set to 1 whether LOG_FTP is supported.])],) + +#Check if we need to include libacl to provide acl API +gl_saved_libs=$LIBS + AC_SEARCH_LIBS(acl, [acl], + [test "$ac_cv_search_acl" = "none required" || + LIB_ACL=$ac_cv_search_acl]) + AC_SUBST([LIB_ACL]) +LIBS=$gl_saved_libs + +SOCKLIBS="" +AC_CHECK_LIB([socket],[socket],[SOCKET_LIB="-lsocket"],[SOCKET_LIB=""],[]) +AC_CHECK_LIB([nsl],[getipnodebyname],[NSL_LIB="-lnsl"],[NSL_LIB=""],[]) +SOCKLIBS="$SOCKET_LIB $NSL_LIB" +AC_SUBST([SOCKLIBS]) + +AM_PATH_PYTHON() + +# Used by env scripts to find libraries in cmake or autoconf builds. +builddir_lib_suffix="/.libs" +AC_SUBST([builddir_lib_suffix]) + +# Files to generate +AC_CONFIG_FILES([ + Makefile + examples/Makefile + examples/direct/Makefile + examples/fanout/Makefile + examples/pub-sub/Makefile + examples/request-response/Makefile + examples/failover/Makefile + examples/xml-exchange/Makefile + examples/qmf-console/Makefile + examples/tradedemo/Makefile + examples/messaging/Makefile + bindings/qmf/Makefile + bindings/qmf/ruby/Makefile + bindings/qmf/python/Makefile + bindings/qmf/tests/Makefile + managementgen/Makefile + etc/Makefile + src/Makefile + src/tests/Makefile + src/tests/test_env.sh + docs/man/Makefile + docs/api/Makefile + docs/api/user.doxygen + docs/api/developer.doxygen + ]) +AC_OUTPUT + diff --git a/trunk/qpid/cpp/docs/api/CMakeLists.txt b/trunk/qpid/cpp/docs/api/CMakeLists.txt new file mode 100644 index 0000000000..1f9573b98a --- /dev/null +++ b/trunk/qpid/cpp/docs/api/CMakeLists.txt @@ -0,0 +1,40 @@ +# +# 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. +# + +if (GEN_DOXYGEN) + # The user.doxygen.in file was originally written for a + # configure-generated situation so makes use of configure names that + # need to be set from the CMake equivalents. + set (top_builddir ${CMAKE_BINARY_DIR}) + set (top_srcdir ${CMAKE_SOURCE_DIR}) + set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}) + configure_file (${CMAKE_CURRENT_SOURCE_DIR}/user.doxygen.in + ${CMAKE_CURRENT_BINARY_DIR}/user.doxygen) + add_custom_target (user-api-docs COMMAND ${DOXYGEN_EXECUTABLE} user.doxygen) + + # HTML files are generated to ./html - put those in the install. + install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ + DESTINATION ${QPID_INSTALL_HTMLDIR} + COMPONENT ${QPID_COMPONENT_CLIENT_INCLUDE}) + if (CPACK_GENERATOR STREQUAL "NSIS") + set (CPACK_NSIS_MENU_LINKS + "${QPID_INSTALL_HTMLDIR}/index.html" "Qpid C++ API Documentation" + "https://issues.apache.org/jira/browse/QPID" "Report Qpid Problem") + endif (CPACK_GENERATOR STREQUAL "NSIS") +endif (GEN_DOXYGEN) diff --git a/trunk/qpid/cpp/docs/api/Makefile.am b/trunk/qpid/cpp/docs/api/Makefile.am new file mode 100644 index 0000000000..f65b4ad8b2 --- /dev/null +++ b/trunk/qpid/cpp/docs/api/Makefile.am @@ -0,0 +1,39 @@ +# +# 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. +# +# +# Run doxygen to generate HTML doc. +# Generate dependency files so its rebuilt only when needed. +# + +if HAVE_DOXYGEN + +EXTRA_DIST = html user.doxygen developer.doxygen html.timestamp CMakeLists.txt + +html: html.timestamp + + +html.timestamp: + test $(srcdir) = . || cp $(srcdir)/header.html $(srcdir)/footer.html . + doxygen user.doxygen + touch $@ + +clean-local: + rm -rf html html-dev html.timestamp + +endif diff --git a/trunk/qpid/cpp/docs/api/developer.doxygen.in b/trunk/qpid/cpp/docs/api/developer.doxygen.in new file mode 100644 index 0000000000..96d67c027f --- /dev/null +++ b/trunk/qpid/cpp/docs/api/developer.doxygen.in @@ -0,0 +1,1241 @@ + # ---------------------------------------------------------------- +# Doxygen settings for Qpid developer documentation. +# +# ---------------------------------------------------------------- + +# Doxyfile 1.4.6 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = Qpid + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 0 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = . + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = YES # was NO - jwr + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = ../../src ../../ + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = YES + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = YES # was NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = YES # was NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO # was YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = NO # was YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO # was YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = YES + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = doxygen.log + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = @top_srcdir@/include @top_srcdir@/src @top_builddir@/include @top_builddir@/src + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: + + +FILE_PATTERNS = *.h *.cpp + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = test + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html-dev + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = YES + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = YES + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = QPID_CLIENT_EXTERN= QPID_COMMON_EXTERN= QPID_CONSOLE_EXTERN= QPID_BROKER_EXTERN= + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = NO + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = YES + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = YES diff --git a/trunk/qpid/cpp/docs/api/doxygen.css b/trunk/qpid/cpp/docs/api/doxygen.css new file mode 100644 index 0000000000..3292768f0c --- /dev/null +++ b/trunk/qpid/cpp/docs/api/doxygen.css @@ -0,0 +1,494 @@ +/* + * + * 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. + * + */ + +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { + font-weight: bold +} +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navpath { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { + text-decoration: none; + background-color: #6666cc; + color: #ffffff +} +A.el { + text-decoration: none; + font-weight: bold +} +A.elRef { + font-weight: bold +} +A.code:link { + text-decoration: none; + font-weight: normal; + color: #0000FF +} +A.code:visited { + text-decoration: none; + font-weight: normal; + color: #0000FF +} +A.codeRef:link { + font-weight: normal; + color: #0000FF +} +A.codeRef:visited { + font-weight: normal; + color: #0000FF +} +A:hover { + text-decoration: none; + background-color: #f2f2ff +} +DL.el { + margin-left: -1cm +} +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px +} + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { + margin-left: 16px; + font-style: italic; + font-size: 90% +} +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { + text-align: center; +} +IMG.formulaDsp { +} +IMG.formulaInl { + vertical-align: middle; +} +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +SPAN.vhdldigit { color: #ff00ff } +SPAN.vhdlchar { color: #000000 } +SPAN.vhdlkeyword { color: #700070 } +SPAN.vhdllogic { color: #ff0000 } + +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { + color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { + font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { + background: #e8eef2; + font-weight: bold; +} +HR { + height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; + margin-left: 3px; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; + white-space: nowrap; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +/* these are for tree view when used as main index */ +.directory { + font-size: 9pt; + font-weight: bold; +} +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +/* The following two styles can be used to replace the root node title */ +/* with an image of your choice. Simply uncomment the next two styles, */ +/* specify the name of your image and be sure to set 'height' to the */ +/* proper pixel height of your image. */ + +/* .directory h3.swap { */ +/* height: 61px; */ +/* background-repeat: no-repeat; */ +/* background-image: url("yourimage.gif"); */ +/* } */ +/* .directory h3.swap span { */ +/* display: none; */ +/* } */ + +.directory > h3 { + margin-top: 0; +} +.directory p { + margin: 0px; + white-space: nowrap; +} +.directory div { + display: none; + margin: 0px; +} +.directory img { + vertical-align: -30%; +} +/* these are for tree view when not used as main index */ +.directory-alt { + font-size: 100%; + font-weight: bold; +} +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} +.directory-alt > h3 { + margin-top: 0; +} +.directory-alt p { + margin: 0px; + white-space: nowrap; +} +.directory-alt div { + display: none; + margin: 0px; +} +.directory-alt img { + vertical-align: -30%; +} + diff --git a/trunk/qpid/cpp/docs/api/doxygen_mainpage.h b/trunk/qpid/cpp/docs/api/doxygen_mainpage.h new file mode 100644 index 0000000000..83efaba31d --- /dev/null +++ b/trunk/qpid/cpp/docs/api/doxygen_mainpage.h @@ -0,0 +1,133 @@ +/* + * + * 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 header file is just for doxygen documentation purposes. + +/** \mainpage Qpid C++ API Reference + * + *

Messaging Client API classes

+ *
    + *
  • \ref clientapi

  • + *
  • \ref qmfapi

  • + *
+ * + *

Code for common tasks

+ * + *
  • Includes and Namespaces

    + *
     \#include 
    + * \#include 
    + * \#include 
    + * \#include 
    + * 
    + *
    + * using namespace qpid::client; 
    + * using namespace qpid::framing;
  • + * + *
  • Opening and closing connections and sessions

    + *
     Connection connection;
    + * try {
    + *    connection.open(host, port);
    + *    Session session =  connection.newSession();
    + *    ...
    + *    connection.close();
    + *    return 0;
    + * } catch(const std::exception& error) {
    + *    std::cout << error.what() << std::endl;
    + * }
    + * return 1;
    + * + * + *
  • Declaring and binding queues:

    + * + *
     session.queueDeclare(arg::queue="message_queue");
    + * session.exchangeBind(arg::exchange="amq.direct", arg::queue="message_queue", arg::bindingKey="routing_key");
  • + * + *
  • Sending a message:

    + * + *
     message.getDeliveryProperties().setRoutingKey("routing_key"); 
    + * message.setData("Hi, Mom!");
    + * session.messageTransfer(arg::content=message,  arg::destination="amq.direct");
  • + * + *
  • Sending a message (asynchronous):

    + * + *
     ##include 
    + * async(session).messageTransfer(arg::content=message,  arg::destination="amq.direct");
    + *  ...
    + * session.sync();
  • + * + * + *
  • Replying to a message:

    + *
     Message request, response; 
    + * ...
    + * if (request.getMessageProperties().hasReplyTo()) {
    + *    string routingKey = request.getMessageProperties().getReplyTo().getRoutingKey();
    + *    string exchange = request.getMessageProperties().getReplyTo().getExchange();
    + *    response.getDeliveryProperties().setRoutingKey(routingKey);
    + *    messageTransfer(arg::content=response, arg::destination=exchange);
    + * } 
    + * 
  • + * + *
  • A message listener:

    + * + *
     class Listener : public MessageListener{
    + *  private:
    + *    SubscriptionManager& subscriptions;
    + *  public:
    + *    Listener(SubscriptionManager& subscriptions);
    + *    virtual void received(Message& message);
    + * };
    + *
    + * void Listener::received(Message& message) {
    + *    std::cout << "Message: " << message.getData() << std::endl;
    + *    if (endCondition(message)) {
    + *       subscriptions.cancel(message.getDestination());
    + *    }
    + * }
  • + * + *
  • Using a message listener with a subscription manager:

    + * + *
     SubscriptionManager subscriptions(session);
    + *
    + * Listener listener(subscriptions);
    + * subscriptions.subscribe(listener, "message_queue");
    + * subscriptions.run();
  • + * + *
  • Using a LocalQueue with a subscription manager

    + * + *
     SubscriptionManager subscriptions(session);
    + *   
    + * LocalQueue local_queue;
    + * subscriptions.subscribe(local_queue, string("message_queue"));
    + *  
    + * Message message;
    + * for (int i=0; i<10; i++) {
    + *    local_queue.get(message, 10000);
    + *    std::cout << message.getData() << std::endl;
    + * }
    • + * + * + */ + +/** + * \defgroup clientapi Qpid C++ Client API + * \defgroup qmfapi Qpid Management Framework C++ API + * + */ diff --git a/trunk/qpid/cpp/docs/api/footer.html b/trunk/qpid/cpp/docs/api/footer.html new file mode 100644 index 0000000000..883410ce25 --- /dev/null +++ b/trunk/qpid/cpp/docs/api/footer.html @@ -0,0 +1,31 @@ + + +
      +
      +Qpid C++ API Reference
      + +
      + +Generated on $datetime for $projectname by doxygen $doxygenversion +
      + + diff --git a/trunk/qpid/cpp/docs/api/header.html b/trunk/qpid/cpp/docs/api/header.html new file mode 100644 index 0000000000..9c85c54000 --- /dev/null +++ b/trunk/qpid/cpp/docs/api/header.html @@ -0,0 +1,50 @@ + + + + +$title + + + + + + + + + + Apache Qpid C++ API + + + + + + + + + + +
      + Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET + + Apache Qpid Documentation +
      + diff --git a/trunk/qpid/cpp/docs/api/stylesheet.css b/trunk/qpid/cpp/docs/api/stylesheet.css new file mode 100644 index 0000000000..3292768f0c --- /dev/null +++ b/trunk/qpid/cpp/docs/api/stylesheet.css @@ -0,0 +1,494 @@ +/* + * + * 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. + * + */ + +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { + font-weight: bold +} +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navpath { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { + text-decoration: none; + background-color: #6666cc; + color: #ffffff +} +A.el { + text-decoration: none; + font-weight: bold +} +A.elRef { + font-weight: bold +} +A.code:link { + text-decoration: none; + font-weight: normal; + color: #0000FF +} +A.code:visited { + text-decoration: none; + font-weight: normal; + color: #0000FF +} +A.codeRef:link { + font-weight: normal; + color: #0000FF +} +A.codeRef:visited { + font-weight: normal; + color: #0000FF +} +A:hover { + text-decoration: none; + background-color: #f2f2ff +} +DL.el { + margin-left: -1cm +} +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px +} + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { + margin-left: 16px; + font-style: italic; + font-size: 90% +} +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { + text-align: center; +} +IMG.formulaDsp { +} +IMG.formulaInl { + vertical-align: middle; +} +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +SPAN.vhdldigit { color: #ff00ff } +SPAN.vhdlchar { color: #000000 } +SPAN.vhdlkeyword { color: #700070 } +SPAN.vhdllogic { color: #ff0000 } + +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { + color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { + font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { + background: #e8eef2; + font-weight: bold; +} +HR { + height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; + margin-left: 3px; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; + white-space: nowrap; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +/* these are for tree view when used as main index */ +.directory { + font-size: 9pt; + font-weight: bold; +} +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +/* The following two styles can be used to replace the root node title */ +/* with an image of your choice. Simply uncomment the next two styles, */ +/* specify the name of your image and be sure to set 'height' to the */ +/* proper pixel height of your image. */ + +/* .directory h3.swap { */ +/* height: 61px; */ +/* background-repeat: no-repeat; */ +/* background-image: url("yourimage.gif"); */ +/* } */ +/* .directory h3.swap span { */ +/* display: none; */ +/* } */ + +.directory > h3 { + margin-top: 0; +} +.directory p { + margin: 0px; + white-space: nowrap; +} +.directory div { + display: none; + margin: 0px; +} +.directory img { + vertical-align: -30%; +} +/* these are for tree view when not used as main index */ +.directory-alt { + font-size: 100%; + font-weight: bold; +} +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} +.directory-alt > h3 { + margin-top: 0; +} +.directory-alt p { + margin: 0px; + white-space: nowrap; +} +.directory-alt div { + display: none; + margin: 0px; +} +.directory-alt img { + vertical-align: -30%; +} + diff --git a/trunk/qpid/cpp/docs/api/tabs.css b/trunk/qpid/cpp/docs/api/tabs.css new file mode 100644 index 0000000000..56f0e04564 --- /dev/null +++ b/trunk/qpid/cpp/docs/api/tabs.css @@ -0,0 +1,123 @@ +/* + * + * 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. + * + */ + +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI.current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI.current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.navpath +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/trunk/qpid/cpp/docs/api/user.doxygen.in b/trunk/qpid/cpp/docs/api/user.doxygen.in new file mode 100644 index 0000000000..2fbac9eb27 --- /dev/null +++ b/trunk/qpid/cpp/docs/api/user.doxygen.in @@ -0,0 +1,1218 @@ +# ---------------------------------------------------------------- +# Doxygen settings for Qpid user documentation. +# +# Note: Only public members of classes that are part of the public API +# should be documented here. For complete developer documentation use +# the developer.doxygen configuration. +# ---------------------------------------------------------------- + +# Doxyfile 1.4.6 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = "Qpid C++ Client API" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +# PROJECT_NUMBER = 0 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = . + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = YES + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = @top_srcdir@/include @top_builddir@/include @top_builddir@/src/gen + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = @top_srcdir@/include @top_builddir@/include + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = YES + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = NO + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO # jwr 2008-11-25 + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = YES + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = YES + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = doxygen.log + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = @top_srcdir@/docs/api @top_srcdir@/include @top_builddir@/include + + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: + + +FILE_PATTERNS = *.h + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = test tests broker amqp_0_10 log sys cluster management + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = @srcdir@/header.html + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = @srcdir@/footer.html + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = YES + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = QPID_CLIENT_EXTERN= QPID_COMMON_EXTERN= QPID_CONSOLE_EXTERN= QPID_BROKER_EXTERN= + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = BOOST_PARAMETER_MEMFUN + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = NO + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = NO + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = NO + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = NO + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = NO + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = NO + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = NO + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = PNG + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/trunk/qpid/cpp/docs/man/Makefile.am b/trunk/qpid/cpp/docs/man/Makefile.am new file mode 100644 index 0000000000..cb13a16e4f --- /dev/null +++ b/trunk/qpid/cpp/docs/man/Makefile.am @@ -0,0 +1,47 @@ +# +# 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. +# +dist_man_MANS = qpidd.1 + +man_aux = $(dist_man_MANS:.1=.x) +EXTRA_DIST = $(man_aux) +DISTCLEANFILES = $(dist_man_MANS) +CLEANFILES=qpidd.1 + +dist-hook: $(man_aux) + +# Depend on configure.ac to get version number changes. +$(dist_man_MANS): $(top_srcdir)/configure.ac + +if HAVE_HELP2MAN + +SUFFIXES = .x .1 +qpidd.1: $(srcdir)/qpidd.x $(top_builddir)/src/qpidd +.x.1: + @rm -f $@ + @echo "Updating man page $@" + $(HELP2MAN) --no-info --include=$(srcdir)/$*.x --output=$@-t --help-option="--help --no-module-dir" --version-option="--version --no-module-dir" ../../src/$* + @chmod a-w $@-t + @mv $@-t $@ +else +qpidd.1: + @echo "Warning: help2man not available, man page lacks options." + @cp $(srcdir)/qpidd.x $@ +endif + + diff --git a/trunk/qpid/cpp/docs/man/qpidd.x b/trunk/qpid/cpp/docs/man/qpidd.x new file mode 100644 index 0000000000..9f1b465701 --- /dev/null +++ b/trunk/qpid/cpp/docs/man/qpidd.x @@ -0,0 +1,46 @@ +[NAME] + +qpidd \- the Qpid AMQP Broker Daemon + +[SYNOPSIS] + +qpidd [options] + +[DESCRIPTION] + +An AMQP broker daemon that stores, routes and forwards messages using +the Advanced Message Queueing Protocol (AMQP). + +[OPTIONS] + +Options may be specified via command line, environment variable or configuration file. See FILES and ENVIRONMENT below for details. + +[FILES] +.I /etc/qpidd.conf +.RS +Default configuration file. +.RE + +Configuration file settings are over-ridden by command line or environment variable settings. '--config ' or 'export QPID_CONFIG=' specifies an alternate file. + +Each line is a name=value pair. Blank lines and lines beginning with # are ignored. For example: + + # My qpidd configuration file. + port=6000 + max-connections=10 + log-to-stdout=yes + log-to-file=/tmp/qpidd.log + +[ENVIRONMENT] +.I QPID_