You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jr...@apache.org on 2018/03/14 20:50:35 UTC
[01/14] qpid-cpp git commit: QPID-8131: Fix a legacytest build
failure and make sure the right tools are on the path for its tests
Repository: qpid-cpp
Updated Branches:
refs/heads/master 2cafedd9b -> 58c0d3631
QPID-8131: Fix a legacytest build failure and make sure the right tools are on the path for its tests
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/646c3b1b
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/646c3b1b
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/646c3b1b
Branch: refs/heads/master
Commit: 646c3b1b501d5ec701c72d4d34b7caea733a97fa
Parents: 1866578
Author: Justin Ross <jr...@apache.org>
Authored: Wed Mar 14 10:46:12 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
src/tests/legacystore/jrnl/jtt/_ut_read_arg.cpp | 4 ++--
src/tests/legacystore/run_python_tests | 4 ++++
2 files changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/646c3b1b/src/tests/legacystore/jrnl/jtt/_ut_read_arg.cpp
----------------------------------------------------------------------
diff --git a/src/tests/legacystore/jrnl/jtt/_ut_read_arg.cpp b/src/tests/legacystore/jrnl/jtt/_ut_read_arg.cpp
index 0d20252..deb68a5 100644
--- a/src/tests/legacystore/jrnl/jtt/_ut_read_arg.cpp
+++ b/src/tests/legacystore/jrnl/jtt/_ut_read_arg.cpp
@@ -83,10 +83,10 @@ QPID_AUTO_TEST_CASE(parse)
ra.parse("ALL");
BOOST_CHECK_EQUAL(ra.val(), read_arg::ALL);
BOOST_CHECK_EQUAL(ra.str(), "ALL");
- BOOST_CHECK_THROW(ra.parse(""), po::invalid_option_value)
+ BOOST_CHECK_THROW(ra.parse(""), po::invalid_option_value);
BOOST_CHECK_EQUAL(ra.val(), read_arg::ALL);
BOOST_CHECK_EQUAL(ra.str(), "ALL");
- BOOST_CHECK_THROW(ra.parse("abc123"), po::invalid_option_value)
+ BOOST_CHECK_THROW(ra.parse("abc123"), po::invalid_option_value);
BOOST_CHECK_EQUAL(ra.val(), read_arg::ALL);
BOOST_CHECK_EQUAL(ra.str(), "ALL");
ra.parse("NONE");
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/646c3b1b/src/tests/legacystore/run_python_tests
----------------------------------------------------------------------
diff --git a/src/tests/legacystore/run_python_tests b/src/tests/legacystore/run_python_tests
index 4d8baec..bffead8 100755
--- a/src/tests/legacystore/run_python_tests
+++ b/src/tests/legacystore/run_python_tests
@@ -37,6 +37,10 @@ from common import *
ENV["PYTHONPATH"] = "{0}:{1}".format(store_tests_dir, ENV["PYTHONPATH"])
+# Add location of qpid-store-resize to the executable path
+
+ENV["PATH"] = "{0}:{1}".format(join(SOURCE_DIR, "management", "python", "bin"), ENV["PATH"])
+
# To debug a test, add the following options to the end of the following line:
# -v DEBUG -c qpid.messaging.io.ops [*.testName]
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[13/14] qpid-cpp git commit: QPID-7054: Fix crash when closing a sender after the connection has been closed. Thanks to Håkan Johansson for the patch.
Posted by jr...@apache.org.
QPID-7054: Fix crash when closing a sender after the connection has been closed. Thanks to Håkan Johansson for the patch.
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/b2bfd9b2
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/b2bfd9b2
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/b2bfd9b2
Branch: refs/heads/master
Commit: b2bfd9b2a46d4d4529d9588df762c4a524a3f6a7
Parents: 3b6f718
Author: Justin Ross <jr...@apache.org>
Authored: Mon Mar 12 18:08:20 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
src/qpid/messaging/amqp/ConnectionContext.cpp | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b2bfd9b2/src/qpid/messaging/amqp/ConnectionContext.cpp
----------------------------------------------------------------------
diff --git a/src/qpid/messaging/amqp/ConnectionContext.cpp b/src/qpid/messaging/amqp/ConnectionContext.cpp
index 097e8f8..5d3a1e3 100644
--- a/src/qpid/messaging/amqp/ConnectionContext.cpp
+++ b/src/qpid/messaging/amqp/ConnectionContext.cpp
@@ -377,14 +377,20 @@ void ConnectionContext::nack(boost::shared_ptr<SessionContext> ssn, qpid::messag
void ConnectionContext::detach(boost::shared_ptr<SessionContext> ssn, boost::shared_ptr<SenderContext> lnk)
{
sys::Monitor::ScopedLock l(lock);
+
if (pn_link_state(lnk->sender) & PN_LOCAL_ACTIVE) {
lnk->close();
}
- wakeupDriver();
- while (pn_link_state(lnk->sender) & PN_REMOTE_ACTIVE) {
- wait(ssn);
+
+ if (state == CONNECTED) {
+ wakeupDriver();
+ while (pn_link_state(lnk->sender) & PN_REMOTE_ACTIVE) {
+ wait(ssn);
+ }
}
+
ssn->removeSender(lnk->getName());
+ lnk->reset(0);
}
void ConnectionContext::drain_and_release_messages(boost::shared_ptr<SessionContext> ssn, boost::shared_ptr<ReceiverContext> lnk)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[07/14] qpid-cpp git commit: QPID-7051: Fix crash after reconnect with transactional session. This is a patch from Håkan Johansson
Posted by jr...@apache.org.
QPID-7051: Fix crash after reconnect with transactional session. This is a patch from Håkan Johansson
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/2fda1139
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/2fda1139
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/2fda1139
Branch: refs/heads/master
Commit: 2fda1139ae93018d4a3c2bd5571c02512ad7ebe8
Parents: b569b4d
Author: Justin Ross <jr...@apache.org>
Authored: Mon Mar 12 13:15:04 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
src/qpid/messaging/amqp/ConnectionContext.cpp | 5 +++++
1 file changed, 5 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/2fda1139/src/qpid/messaging/amqp/ConnectionContext.cpp
----------------------------------------------------------------------
diff --git a/src/qpid/messaging/amqp/ConnectionContext.cpp b/src/qpid/messaging/amqp/ConnectionContext.cpp
index 85408de..097e8f8 100644
--- a/src/qpid/messaging/amqp/ConnectionContext.cpp
+++ b/src/qpid/messaging/amqp/ConnectionContext.cpp
@@ -207,7 +207,12 @@ void ConnectionContext::close()
syncLH(i->second, l);
} catch (const MessageRejected& e) {
QPID_LOG(error, "Could not sync session on connection close due to message rejection (use explicit sync to handle exception): " << e.what());
+ } catch (const SessionClosed& e) {
+ continue;
+ } catch (const TransactionAborted& e) {
+ continue;
}
+
if (!(pn_session_state(i->second->session) & PN_LOCAL_CLOSED)) {
pn_session_close(i->second->session);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[11/14] qpid-cpp git commit: QPID-7499: Copy test scripts in a way
that preserves dependencies
Posted by jr...@apache.org.
QPID-7499: Copy test scripts in a way that preserves dependencies
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/8ceb65eb
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/8ceb65eb
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/8ceb65eb
Branch: refs/heads/master
Commit: 8ceb65eb9c7e6e1c988d9edea5b5539a7559c3d0
Parents: b2bfd9b
Author: Justin Ross <jr...@apache.org>
Authored: Tue Mar 13 06:43:16 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
src/tests/CMakeLists.txt | 39 +++++++++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/8ceb65eb/src/tests/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 5d92fbc..4122d9c 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -107,14 +107,14 @@ if (BUILD_TESTING)
if (CMAKE_SYSTEM_NAME STREQUAL Windows)
# Windows
-
+
set(ENV{OUTDIR} ${EXECUTABLE_OUTPUT_PATH})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/env.ps1.in
${CMAKE_CURRENT_BINARY_DIR}/env.ps1 @ONLY)
else (CMAKE_SYSTEM_NAME STREQUAL Windows)
# Posix
-
+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/env.sh.in
${CMAKE_CURRENT_BINARY_DIR}/env.sh @ONLY)
endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
@@ -124,14 +124,33 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/check_dependencies.py.in
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/env.py.in
${CMAKE_CURRENT_BINARY_DIR}/env.py @ONLY)
-file(COPY .
- DESTINATION .
- PATTERN "*.cmake" EXCLUDE
- PATTERN "*.in" EXCLUDE
- PATTERN "*.c" EXCLUDE
- PATTERN "*.h" EXCLUDE
- PATTERN "*.cpp" EXCLUDE)
-
+file(GLOB_RECURSE copied_files "*.ps1", "*.py" "*.sh" "*.xml" "run_*")
+
+foreach (copied_file ${copied_files})
+ file (RELATIVE_PATH file_name ${CMAKE_CURRENT_SOURCE_DIR} ${copied_file})
+ configure_file (${copied_file} ${file_name} COPYONLY)
+endforeach ()
+
+configure_file(.valgrind.supp .valgrind.supp COPYONLY)
+configure_file(dynamic_log_hires_timestamp dynamic_log_hires_timestamp COPYONLY)
+configure_file(dynamic_log_level_test dynamic_log_level_test COPYONLY)
+configure_file(failing-amqp0-10-python-tests failing-amqp0-10-python-tests COPYONLY)
+configure_file(failing-amqp1.0-python-tests failing-amqp1.0-python-tests COPYONLY)
+configure_file(federated_topic_test federated_topic_test COPYONLY)
+configure_file(perfdist perfdist COPYONLY)
+configure_file(ping_broker ping_broker COPYONLY)
+configure_file(policy.acl policy.acl COPYONLY)
+configure_file(qpid-analyze-trace qpid-analyze-trace COPYONLY)
+configure_file(qpid-cpp-benchmark qpid-cpp-benchmark COPYONLY)
+configure_file(qpid-ctrl qpid-ctrl COPYONLY)
+configure_file(qpidd-empty.conf qpidd-empty.conf COPYONLY)
+configure_file(qpidd-p0 qpidd-p0 COPYONLY)
+configure_file(ring_queue_test ring_queue_test COPYONLY)
+configure_file(sasl_fed sasl_fed COPYONLY)
+configure_file(sasl_fed_ex sasl_fed_ex COPYONLY)
+configure_file(sasl_no_dir sasl_no_dir COPYONLY)
+configure_file(topictest topictest COPYONLY)
+
if (BUILD_TESTING_UNITTESTS)
# Unit test program
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[12/14] qpid-cpp git commit: QPID-7821: Add man pages for all
executables. Adapted from a patch from Irina Boverman.
Posted by jr...@apache.org.
QPID-7821: Add man pages for all executables. Adapted from a patch from Irina Boverman.
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/cd6cad73
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/cd6cad73
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/cd6cad73
Branch: refs/heads/master
Commit: cd6cad7364afd2ed78a21c2cad42c85304d8080e
Parents: 26b6c37
Author: Justin Ross <jr...@apache.org>
Authored: Mon Mar 12 15:37:45 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
docs/man/CMakeLists.txt | 4 +-
docs/man/generate-manpages.sh | 40 +++
docs/man/generate_manpage | 27 --
docs/man/groffify_options.sed | 25 --
docs/man/groffify_template.sed | 21 --
docs/man/qmf-gen.1 | 51 ++++
docs/man/qmf-gen.x | 38 +++
docs/man/qpid-config.1 | 204 +++++++++++++
docs/man/qpid-config.x | 89 ++++++
docs/man/qpid-ha.1 | 35 +++
docs/man/qpid-ha.x | 38 +++
docs/man/qpid-printevents.1 | 57 ++++
docs/man/qpid-printevents.x | 44 +++
docs/man/qpid-queue-stats.1 | 41 +++
docs/man/qpid-queue-stats.x | 38 +++
docs/man/qpid-receive.1 | 223 ++++++++++++++
docs/man/qpid-receive.x | 38 +++
docs/man/qpid-route.1 | 99 ++++++
docs/man/qpid-route.x | 38 +++
docs/man/qpid-send.1 | 255 ++++++++++++++++
docs/man/qpid-send.x | 38 +++
docs/man/qpid-stat.1 | 88 ++++++
docs/man/qpid-stat.x | 47 +++
docs/man/qpid-tool.1 | 37 +++
docs/man/qpid-tool.x | 38 +++
docs/man/qpidd.1 | 590 ++++++++++++++++++++++--------------
docs/man/qpidd.x | 2 +-
27 files changed, 1944 insertions(+), 301 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/docs/man/CMakeLists.txt b/docs/man/CMakeLists.txt
index fe94dc2..3146421 100644
--- a/docs/man/CMakeLists.txt
+++ b/docs/man/CMakeLists.txt
@@ -17,6 +17,6 @@
# under the License.
#
-INSTALL (FILES qpidd.1
+install (FILES qpidd.1 qmf-gen.1 qpid-printevents.1 qpid-receive.1 qpid-send.1 qpid-tool.1
+ qpid-config.1 qpid-ha.1 qpid-queue-stats.1 qpid-route.1 qpid-stat.1
DESTINATION ${QPID_INSTALL_MANDIR}/man1)
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/generate-manpages.sh
----------------------------------------------------------------------
diff --git a/docs/man/generate-manpages.sh b/docs/man/generate-manpages.sh
new file mode 100755
index 0000000..3d47376
--- /dev/null
+++ b/docs/man/generate-manpages.sh
@@ -0,0 +1,40 @@
+#!/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.
+#
+#
+# Assumes all tools are installed
+#
+ver="($(qpidd --version | cut -d"(" -f2)"
+#
+help2man --no-info --include=qpidd.x --output=qpidd.1 --version-option="--version" qpidd
+#
+man_pages="qpid-tool qmf-gen qpid-config qpid-ha qpid-printevents qpid-queue-stats qpid-route qpid-stat"
+for page in ${man_pages}
+do
+ help2man --no-info --include=${page}.x --output=${page}.1 --version-string=" $ver" $page
+done
+#
+man_pages="qpid-receive qpid-send"
+for page in ${man_pages}
+do
+ help2man --no-info --include=${page}.x --output=${page}.1 --version-string=" $ver" --no-discard-stderr $page
+done
+
+exit
+
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/generate_manpage
----------------------------------------------------------------------
diff --git a/docs/man/generate_manpage b/docs/man/generate_manpage
deleted file mode 100755
index 2d6c146..0000000
--- a/docs/man/generate_manpage
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/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.
-#
-
-test -n "$3" || { echo "Usage: $0 <source> <qpidd> <output>"; exit 1; }
-
-$2 --help --no-module-dir | grep -v 'Usage: ' | sed -f $(dirname $0)/groffify_options.sed > .temp.options.groff
-cat $1 | sed -f $(dirname $0)/groffify_template.sed | sed -e '/^\.PP$/ r .temp.options.groff' -e "/^.SH NAME/ i\
-.TH QPIDD \"1\" \"$(date +'%B %Y')\" \"$($2 -v)\" \"User Commands\"
-" > $3
-rm .temp.options.groff
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/groffify_options.sed
----------------------------------------------------------------------
diff --git a/docs/man/groffify_options.sed b/docs/man/groffify_options.sed
deleted file mode 100644
index c0f295e..0000000
--- a/docs/man/groffify_options.sed
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# 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.
-#
-s/^\( \{2\}\)\(.*)\)\( \{2,\}\)/.TP\n\2\n/
-s/^\( \{2\}\)\(.*\]\)\( \{2,\}\)/.TP\n\2\n/
-s/^\( \{2\}\)\(.*\b\)\( \{2,\}\)/.TP\n\2\n/
-s/^\([A-Z].*\):$/.SS \1/
-s/-/\\-/g
-s/^ \{2,\}//
-s/\('.*'\)/\\\&\1/
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/groffify_template.sed
----------------------------------------------------------------------
diff --git a/docs/man/groffify_template.sed b/docs/man/groffify_template.sed
deleted file mode 100644
index 74aaed3..0000000
--- a/docs/man/groffify_template.sed
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# 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.
-#
-/\[FILES\]/ i\
-.PP
-s/^\[\([A-Z ]*\)\]/.SH \1/
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qmf-gen.1
----------------------------------------------------------------------
diff --git a/docs/man/qmf-gen.1 b/docs/man/qmf-gen.1
new file mode 100644
index 0000000..1373986
--- /dev/null
+++ b/docs/man/qmf-gen.1
@@ -0,0 +1,51 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QMF-GEN "1" "March 2018" "qmf-gen (qpid-cpp) version 1.38.0" "User Commands"
+.SH NAME
+
+qmf-gen \- QMF Tool
+.SH SYNOPSIS
+
+qmf-gen [options] schema-document...
+.SH DESCRIPTION
+
+QPID management framework tool.
+.SH OPTIONS
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+show this help message and exit
+.TP
+\fB\-o\fR DIR, \fB\-\-outputdir\fR=\fI\,DIR\/\fR
+Output directory
+.TP
+\fB\-c\fR FILE, \fB\-\-cmakelists\fR=\fI\,FILE\/\fR
+CMakeLists fragment
+.TP
+\fB\-m\fR FILE, \fB\-\-makefile\fR=\fI\,FILE\/\fR
+Makefile fragment
+.TP
+\fB\-t\fR FILE, \fB\-\-typefile\fR=\fI\,FILE\/\fR
+Override type descriptor file
+.TP
+\fB\-d\fR DIR, \fB\-\-templatedir\fR=\fI\,DIR\/\fR
+Override template directory
+.TP
+\fB\-p\fR GENPREFIX, \fB\-\-gen\-prefix\fR=\fI\,GENPREFIX\/\fR
+Prefix for generated files in make dependencies
+.TP
+\fB\-q\fR, \fB\-\-qpid\-broker\fR
+Generate makefile for Qpid broker
+.TP
+\fB\-b\fR, \fB\-\-broker\-plugin\fR
+Generate code for use in a qpid broker plugin
+.TP
+\fB\-2\fR, \fB\-\-v2\-style\fR
+Generate code for use with the QMFv2 Agent API
+.TP
+\fB\-l\fR, \fB\-\-qpid\-logs\fR
+Generate code for QPID_LOG statements in classes constructor/destructor
+.SH AUTHOR
+
+The Apache Qpid Project, dev@qpid.apache.org
+.SH "REPORTING BUGS"
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qmf-gen.x
----------------------------------------------------------------------
diff --git a/docs/man/qmf-gen.x b/docs/man/qmf-gen.x
new file mode 100644
index 0000000..955529a
--- /dev/null
+++ b/docs/man/qmf-gen.x
@@ -0,0 +1,38 @@
+.\"
+.\" 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.
+.\"
+
+[NAME]
+
+qmf-gen \- QMF Tool
+
+[SYNOPSIS]
+
+qmf-gen [options] schema-document...
+
+[DESCRIPTION]
+
+QPID management framework tool.
+
+[AUTHOR]
+
+The Apache Qpid Project, dev@qpid.apache.org
+
+[REPORTING BUGS]
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-config.1
----------------------------------------------------------------------
diff --git a/docs/man/qpid-config.1 b/docs/man/qpid-config.1
new file mode 100644
index 0000000..1736712
--- /dev/null
+++ b/docs/man/qpid-config.1
@@ -0,0 +1,204 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QPID-CONFIG "1" "March 2018" "qpid-config (qpid-cpp) version 1.38.0" "User Commands"
+.SH NAME
+
+qpid-config \- QPID Broker Configuration Tool
+.SH SYNOPSIS
+
+qpid-config [OPTIONS] commands
+.SH DESCRIPTION
+
+Usage: qpid-config [OPTIONS]
+ qpid-config [OPTIONS] exchanges [filter-string]
+ qpid-config [OPTIONS] queues [filter-string]
+ qpid-config [OPTIONS] add exchange <type> <name> [AddExchangeOptions]
+ qpid-config [OPTIONS] del exchange <name>
+ qpid-config [OPTIONS] add queue <name> [AddQueueOptions]
+ qpid-config [OPTIONS] del queue <name> [DelQueueOptions]
+ qpid-config [OPTIONS] bind <exchange-name> <queue-name> [binding-key]
+ <for type xml> [-f -|filename]
+ <for type header> [all|any] k1=v1 [, k2=v2...]
+ qpid-config [OPTIONS] unbind <exchange-name> <queue-name> [binding-key]
+ qpid-config [OPTIONS] reload-acl
+ qpid-config [OPTIONS] add <type> <name> [--argument <property-name>=<property-value>]
+ qpid-config [OPTIONS] del <type> <name>
+ qpid-config [OPTIONS] list <type> [--show-property <property-name>]
+ qpid-config [OPTIONS] log [<logstring>]
+ qpid-config [OPTIONS] shutdown"""
+.SH OPTIONS
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+show this help message and exit
+.IP
+General Options:
+.TP
+\fB\-t\fR <secs>, \fB\-\-timeout=\fR<secs>
+Maximum time to wait for broker connection (in seconds)
+.TP
+\fB\-r\fR, \fB\-\-recursive\fR
+Show bindings in queue or exchange list
+.TP
+\fB\-b\fR <address>, \fB\-\-broker=\fR<address>
+Address of qpidd broker with syntax: [username/password@] hostname | ip\-address [:<port>]
+.HP
+\fB\-a\fR <address>, \fB\-\-broker\-addr=\fR<address>
+.TP
+\fB\-\-sasl\-mechanism=\fR<mech>
+SASL mechanism for authentication (e.g. EXTERNAL, ANONYMOUS, PLAIN, CRAM\-MD5, DIGEST\-MD5, GSSAPI). SASL
+automatically picks the most secure available mechanism \- use this option to override.
+.TP
+\fB\-\-sasl\-service\-name\fR=\fI\,SASL_SERVICE_NAME\/\fR
+SASL service name to use
+.TP
+\fB\-\-ssl\-certificate=\fR<cert>
+Client SSL certificate (PEM Format)
+.TP
+\fB\-\-ssl\-key=\fR<key>
+Client SSL private key (PEM Format)
+.TP
+\fB\-\-ha\-admin\fR
+Allow connection to a HA backup broker.
+.IP
+Options for Listing Exchanges and Queues:
+.TP
+\fB\-\-ignore\-default\fR
+Ignore the default exchange in exchange or queue list
+.IP
+Options for Adding Exchanges and Queues:
+.TP
+\fB\-\-alternate\-exchange=\fR<aexname>
+Name of the alternate\-exchange for the new queue or exchange. Exchanges route messages to the alternate
+exchange if they are unable to route them elsewhere. Queues route messages to the alternate exchange if they
+are rejected by a subscriber or orphaned by queue deletion.
+.TP
+\fB\-\-durable\fR
+The new queue or exchange is durable.
+.TP
+\fB\-\-replicate=\fR<level>
+Enable automatic replication in a HA cluster. <level> is 'none', 'configuration' or 'all').
+.IP
+Options for Adding Queues:
+.TP
+\fB\-\-file\-count=\fR<n>
+[legacystore] Number of files in queue's persistence journal
+.TP
+\fB\-\-file\-size=\fR<n>
+[legactystore] File size in pages (64KiB/page)
+.TP
+\fB\-\-efp\-partition\-num=\fR<n>
+[linearstore] EFP partition number
+.TP
+\fB\-\-efp\-pool\-file\-size=\fR<n>
+[linearstore] EFP file size (KiB)
+.TP
+\fB\-\-wcache\-page\-size=\fR<n>
+[linearstore] Per\-queue buffer page size (kiB), value may be powers of 2 starting at 4 (4, 8, 16, 32...)
+.TP
+\fB\-\-wcache\-num\-pages=\fR<n>
+[linearstore] Per\-queue num buffer pages
+.TP
+\fB\-\-max\-queue\-size=\fR<n>
+Maximum in\-memory queue size as bytes
+.TP
+\fB\-\-max\-queue\-count=\fR<n>
+Maximum in\-memory queue size as a number of messages
+.TP
+\fB\-\-limit\-policy=\fR<policy>
+Action to take when queue limit is reached
+.TP
+\fB\-\-lvq\-key=\fR<key>
+Last Value Queue key
+.TP
+\fB\-\-flow\-stop\-size=\fR<n>
+Turn on sender flow control when the number of queued bytes exceeds this value.
+.TP
+\fB\-\-flow\-resume\-size=\fR<n>
+Turn off sender flow control when the number of queued bytes drops below this value.
+.TP
+\fB\-\-flow\-stop\-count=\fR<n>
+Turn on sender flow control when the number of queued messages exceeds this value.
+.TP
+\fB\-\-flow\-resume\-count=\fR<n>
+Turn off sender flow control when the number of queued messages drops below this value.
+.TP
+\fB\-\-group\-header=\fR<header\-name>
+Enable message groups. Specify name of header that holds group identifier.
+.TP
+\fB\-\-shared\-groups\fR
+Allow message group consumption across multiple consumers.
+.TP
+\fB\-\-argument=\fR<NAME=VALUE>
+Specify a key\-value pair to add to queue arguments
+.TP
+\fB\-\-start\-replica=\fR<broker\-url>
+Start replication from the same\-named queue at <broker\-url>
+.IP
+Options for Adding Exchanges:
+.TP
+\fB\-\-sequence\fR
+Exchange will insert a 'qpid.msg_sequence' field in the message header
+.TP
+\fB\-\-ive\fR
+Exchange will behave as an 'initial\-value\-exchange', keeping a reference to the last message forwarded and
+enqueuing that message to newly bound queues.
+.IP
+Options for Deleting Queues:
+.TP
+\fB\-\-force\fR
+Force delete of queue even if it's currently used or it's not empty
+.TP
+\fB\-\-force\-if\-not\-empty\fR
+Force delete of queue even if it's not empty
+.TP
+\fB\-\-force\-if\-used\fR
+Force delete of queue even if it's currently used
+.IP
+Options for Declaring Bindings:
+.TP
+\fB\-f\fR <file.xq>, \fB\-\-file=\fR<file.xq>
+For XML Exchange bindings \- specifies the name of a file containing an XQuery.
+.IP
+Formatting options for 'list' action:
+.TP
+\fB\-\-show\-property=\fR<property\-name>
+Specify a property of an object to be included in output
+.SH EXAMPLES
+
+$ qpid-config add queue q
+
+$ qpid-config add exchange direct d -a localhost:5672
+
+$ qpid-config exchanges -b 10.1.1.7:10000
+
+$ qpid-config queues -b guest/guest@broker-host:10000
+
+Add Exchange <type> values:
+
+ direct Direct exchange for point-to-point communication
+ fanout Fanout exchange for broadcast communication
+ topic Topic exchange that routes messages using binding keys with wildcards
+ headers Headers exchange that matches header fields against the binding keys
+ xml XML Exchange - allows content filtering using an XQuery
+
+
+Queue Limit Actions:
+
+ none (default) - Use broker's default policy
+ reject - Reject enqueued messages
+ ring - Replace oldest unacquired message with new
+
+Replication levels:
+
+ none - no replication
+ configuration - replicate queue and exchange existence and bindings, but not messages.
+ all - replicate configuration and messages
+
+Log <logstring> value:
+
+ Comma separated <module>:<level> pairs, e.g. 'info+,debug+:Broker,trace+:Queue'
+.SH AUTHOR
+
+The Apache Qpid Project, dev@qpid.apache.org
+.SH "REPORTING BUGS"
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-config.x
----------------------------------------------------------------------
diff --git a/docs/man/qpid-config.x b/docs/man/qpid-config.x
new file mode 100644
index 0000000..07297a9
--- /dev/null
+++ b/docs/man/qpid-config.x
@@ -0,0 +1,89 @@
+.\"
+.\" 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.
+.\"
+
+[NAME]
+
+qpid-config \- QPID Broker Configuration Tool
+
+[SYNOPSIS]
+
+qpid-config [OPTIONS] commands
+
+[=DESCRIPTION]
+
+Usage: qpid-config [OPTIONS]
+ qpid-config [OPTIONS] exchanges [filter-string]
+ qpid-config [OPTIONS] queues [filter-string]
+ qpid-config [OPTIONS] add exchange <type> <name> [AddExchangeOptions]
+ qpid-config [OPTIONS] del exchange <name>
+ qpid-config [OPTIONS] add queue <name> [AddQueueOptions]
+ qpid-config [OPTIONS] del queue <name> [DelQueueOptions]
+ qpid-config [OPTIONS] bind <exchange-name> <queue-name> [binding-key]
+ <for type xml> [-f -|filename]
+ <for type header> [all|any] k1=v1 [, k2=v2...]
+ qpid-config [OPTIONS] unbind <exchange-name> <queue-name> [binding-key]
+ qpid-config [OPTIONS] reload-acl
+ qpid-config [OPTIONS] add <type> <name> [--argument <property-name>=<property-value>]
+ qpid-config [OPTIONS] del <type> <name>
+ qpid-config [OPTIONS] list <type> [--show-property <property-name>]
+ qpid-config [OPTIONS] log [<logstring>]
+ qpid-config [OPTIONS] shutdown"""
+
+[=EXAMPLES]
+
+$ qpid-config add queue q
+
+$ qpid-config add exchange direct d -a localhost:5672
+
+$ qpid-config exchanges -b 10.1.1.7:10000
+
+$ qpid-config queues -b guest/guest@broker-host:10000
+
+Add Exchange <type> values:
+
+ direct Direct exchange for point-to-point communication
+ fanout Fanout exchange for broadcast communication
+ topic Topic exchange that routes messages using binding keys with wildcards
+ headers Headers exchange that matches header fields against the binding keys
+ xml XML Exchange - allows content filtering using an XQuery
+
+
+Queue Limit Actions:
+
+ none (default) - Use broker's default policy
+ reject - Reject enqueued messages
+ ring - Replace oldest unacquired message with new
+
+Replication levels:
+
+ none - no replication
+ configuration - replicate queue and exchange existence and bindings, but not messages.
+ all - replicate configuration and messages
+
+Log <logstring> value:
+
+ Comma separated <module>:<level> pairs, e.g. 'info+,debug+:Broker,trace+:Queue'
+
+[AUTHOR]
+
+The Apache Qpid Project, dev@qpid.apache.org
+
+[REPORTING BUGS]
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-ha.1
----------------------------------------------------------------------
diff --git a/docs/man/qpid-ha.1 b/docs/man/qpid-ha.1
new file mode 100644
index 0000000..48fbcb6
--- /dev/null
+++ b/docs/man/qpid-ha.1
@@ -0,0 +1,35 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QPID-HA "1" "March 2018" "qpid-ha (qpid-cpp) version 1.38.0" "User Commands"
+.SH NAME
+
+qpid-ha \- Tool for QPID HA
+.SH SYNOPSIS
+
+qpid-ha <command> [<arguments>]
+.SH DESCRIPTION
+
+Shows broker and HA status, HA configuration and sets up replication.
+.PP
+usage: qpid\-ha <command> [<arguments>]
+.PP
+Commands are:
+.TP
+ping
+Check if the broker is alive and responding.
+.TP
+status
+Print HA status.
+.TP
+replicate
+Set up replication from <queue> on <remote\-broker> to <queue> on the current broker.
+.TP
+query
+Print HA configuration and status.
+.PP
+For help with a command type: qpid\-ha <command> \fB\-\-help\fR
+.SH AUTHOR
+
+The Apache Qpid Project, dev@qpid.apache.org
+.SH "REPORTING BUGS"
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-ha.x
----------------------------------------------------------------------
diff --git a/docs/man/qpid-ha.x b/docs/man/qpid-ha.x
new file mode 100644
index 0000000..8434e46
--- /dev/null
+++ b/docs/man/qpid-ha.x
@@ -0,0 +1,38 @@
+.\"
+.\" 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.
+.\"
+
+[NAME]
+
+qpid-ha \- Tool for QPID HA
+
+[SYNOPSIS]
+
+qpid-ha <command> [<arguments>]
+
+[DESCRIPTION]
+
+Shows broker and HA status, HA configuration and sets up replication.
+
+[AUTHOR]
+
+The Apache Qpid Project, dev@qpid.apache.org
+
+[REPORTING BUGS]
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-printevents.1
----------------------------------------------------------------------
diff --git a/docs/man/qpid-printevents.1 b/docs/man/qpid-printevents.1
new file mode 100644
index 0000000..1acb6ce
--- /dev/null
+++ b/docs/man/qpid-printevents.1
@@ -0,0 +1,57 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QPID-PRINTEVENTS "1" "March 2018" "qpid-printevents (qpid-cpp) version 1.38.0" "User Commands"
+.SH NAME
+
+qpid-printevents \- Collect and Print Events.
+.SH SYNOPSIS
+
+qpid-printevents [options] [broker-addr]...
+.SH DESCRIPTION
+qpid\-printevents [options] [broker\-addr]...
+.PP
+Collect and print events from one or more Qpid message brokers.
+.PP
+If no broker\-addr is supplied, qpid\-printevents connects to 'localhost:5672'.
+.PP
+[broker\-addr] syntax:
+.IP
+[username/password@] hostname
+ip\-address [:<port>]
+.SH OPTIONS
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+show this help message and exit
+.TP
+\fB\-\-heartbeats\fR
+Use heartbeats.
+.TP
+\fB\-\-sasl\-mechanism=\fR<mech>
+SASL mechanism for authentication (e.g. EXTERNAL, ANONYMOUS, PLAIN, CRAM\-MD5, DIGEST\-MD5, GSSAPI). SASL
+automatically picks the most secure available mechanism \- use this option to override.
+.TP
+\fB\-\-sasl\-service\-name\fR=\fI\,SASL_SERVICE_NAME\/\fR
+SASL service name to use
+.TP
+\fB\-\-ssl\-certificate=\fR<cert>
+Client SSL certificate (PEM Format)
+.TP
+\fB\-\-ssl\-key=\fR<key>
+Client SSL private key (PEM Format)
+.TP
+\fB\-\-ha\-admin\fR
+Allow connection to a HA backup broker.
+.SH EXAMPLES
+
+Examples:
+
+$ qpid-printevents localhost:5672
+
+$ qpid-printevents 10.1.1.7:10000
+
+$ qpid-printevents guest/guest@broker-host:10000
+.SH AUTHOR
+
+The Apache Qpid Project, dev@qpid.apache.org
+.SH "REPORTING BUGS"
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-printevents.x
----------------------------------------------------------------------
diff --git a/docs/man/qpid-printevents.x b/docs/man/qpid-printevents.x
new file mode 100644
index 0000000..f601a41
--- /dev/null
+++ b/docs/man/qpid-printevents.x
@@ -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.
+.\"
+
+[NAME]
+
+qpid-printevents \- Collect and Print Events.
+
+[SYNOPSIS]
+
+qpid-printevents [options] [broker-addr]...
+
+[=EXAMPLES]
+
+Examples:
+
+$ qpid-printevents localhost:5672
+
+$ qpid-printevents 10.1.1.7:10000
+
+$ qpid-printevents guest/guest@broker-host:10000
+
+[AUTHOR]
+
+The Apache Qpid Project, dev@qpid.apache.org
+
+[REPORTING BUGS]
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-queue-stats.1
----------------------------------------------------------------------
diff --git a/docs/man/qpid-queue-stats.1 b/docs/man/qpid-queue-stats.1
new file mode 100644
index 0000000..c4dfd6f
--- /dev/null
+++ b/docs/man/qpid-queue-stats.1
@@ -0,0 +1,41 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QPID-QUEUE-STATS "1" "March 2018" "qpid-queue-stats (qpid-cpp) version 1.38.0" "User Commands"
+.SH NAME
+
+qpid-queue-stats \- View QPID Broker Queue Stats
+.SH SYNOPSIS
+
+qpid-queue-stats [options]
+.SH DESCRIPTION
+
+Shows information about QPID broker queues.
+.SH OPTIONS
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+show this help message and exit
+.TP
+\fB\-a\fR BROKER_ADDRESS, \fB\-\-broker\-address\fR=\fI\,BROKER_ADDRESS\/\fR
+broker\-addr is in the form: [username/password@] hostname | ip\-address [:<port>] ex: localhost,
+10.1.1.7:10000, broker\-host:10000, guest/guest@localhost
+.TP
+\fB\-f\fR FILTER, \fB\-\-filter\fR=\fI\,FILTER\/\fR
+a list of comma separated queue names (regex are accepted) to show
+.TP
+\fB\-\-sasl\-mechanism=\fR<mech>
+SASL mechanism for authentication (e.g. EXTERNAL, ANONYMOUS, PLAIN, CRAM\-MD5, DIGEST\-MD5, GSSAPI). SASL
+automatically picks the most secure available mechanism \- use this option to override.
+.TP
+\fB\-\-sasl\-service\-name\fR=\fI\,SASL_SERVICE_NAME\/\fR
+SASL service name to use
+.TP
+\fB\-\-ssl\-certificate=\fR<cert>
+Client SSL certificate (PEM Format)
+.TP
+\fB\-\-ssl\-key=\fR<key>
+Client SSL private key (PEM Format)
+.SH AUTHOR
+
+The Apache Qpid Project, dev@qpid.apache.org
+.SH "REPORTING BUGS"
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-queue-stats.x
----------------------------------------------------------------------
diff --git a/docs/man/qpid-queue-stats.x b/docs/man/qpid-queue-stats.x
new file mode 100644
index 0000000..f0031fa
--- /dev/null
+++ b/docs/man/qpid-queue-stats.x
@@ -0,0 +1,38 @@
+.\"
+.\" 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.
+.\"
+
+[NAME]
+
+qpid-queue-stats \- View QPID Broker Queue Stats
+
+[SYNOPSIS]
+
+qpid-queue-stats [options]
+
+[DESCRIPTION]
+
+Shows information about QPID broker queues.
+
+[AUTHOR]
+
+The Apache Qpid Project, dev@qpid.apache.org
+
+[REPORTING BUGS]
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-receive.1
----------------------------------------------------------------------
diff --git a/docs/man/qpid-receive.1 b/docs/man/qpid-receive.1
new file mode 100644
index 0000000..22e8d5d
--- /dev/null
+++ b/docs/man/qpid-receive.1
@@ -0,0 +1,223 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QPID-RECEIVE "1" "March 2018" "qpid-receive (qpid-cpp) version 1.38.0" "User Commands"
+.SH NAME
+
+qpid-receive \- AMQP Message Receiver
+.SH SYNOPSIS
+
+qpid-receive [OPTIONS] -a [ --address ] ADDRESS
+.SH DESCRIPTION
+
+Receives AMQP messages from AMQP sources.
+.SH OPTIONS
+.TP
+\fB\-b\fR [ \fB\-\-broker\fR ] URL (127.0.0.1)
+url of broker to connect to
+.TP
+\fB\-a\fR [ \fB\-\-address\fR ] ADDRESS
+address to receive from
+.TP
+\fB\-\-connection\-options\fR OPTIONS
+options for the connection
+.TP
+\fB\-\-timeout\fR TIMEOUT (0)
+timeout in seconds to wait before
+exiting
+.TP
+\fB\-f\fR [ \fB\-\-forever\fR ]
+ignore timeout and wait forever
+.TP
+\fB\-m\fR [ \fB\-\-messages\fR ] N (0)
+Number of messages to receive; 0 means
+receive indefinitely
+.TP
+\fB\-\-ignore\-duplicates\fR
+Detect and ignore duplicates (by
+checking 'sn' header)
+.TP
+\fB\-\-verify\-sequence\fR
+Verify there are no gaps in the message
+sequence (by checking 'sn' header)
+.TP
+\fB\-\-check\-redelivered\fR
+Fails with exception if a duplicate is
+not marked as redelivered (only
+relevant when ignore\-duplicates is
+selected)
+.TP
+\fB\-\-capacity\fR N (1000)
+Pre\-fetch window (0 implies no
+pre\-fetch)
+.TP
+\fB\-\-ack\-frequency\fR N (100)
+Ack frequency (0 implies none of the
+messages will get accepted)
+.TP
+\fB\-\-tx\fR N (0)
+batch size for transactions (0 implies
+transaction are not used)
+.TP
+\fB\-\-rollback\-frequency\fR N (0)
+rollback frequency (0 implies no
+transaction will be rolledback)
+.TP
+\fB\-\-print\-content\fR yes|no (1)
+print out message content
+.TP
+\fB\-\-print\-object\-type\fR yes|no (0)
+print a description of the content's
+object type if relevant
+.TP
+\fB\-\-print\-headers\fR yes|no (0)
+print out message headers
+.TP
+\fB\-\-failover\-updates\fR
+Listen for membership updates
+distributed via amq.failover
+.TP
+\fB\-\-report\-total\fR
+Report total throughput and latency
+statistics
+.TP
+\fB\-\-report\-every\fR N (0)
+Report throughput and latency
+statistics every N messages.
+.TP
+\fB\-\-report\-header\fR yes|no (1)
+Headers on report.
+.TP
+\fB\-\-ready\-address\fR ADDRESS
+send a message to this address when
+ready to receive
+.TP
+\fB\-\-receive\-rate\fR N (0)
+Receive at rate of N messages/second. 0
+means receive as fast as possible.
+.TP
+\fB\-\-reply\-to\fR REPLY\-TO
+specify reply\-to address on response
+messages
+.TP
+\fB\-\-ignore\-reply\-to\fR
+Do not send replies even if reply\-to is
+set
+.TP
+\fB\-\-help\fR
+print this usage statement
+.SS "Logging options:"
+.TP
+\fB\-t\fR [ \fB\-\-trace\fR ]
+Enables all logging
+.TP
+\fB\-\-log\-enable\fR RULE (notice+)
+Enables logging for selected levels and
+components. RULE is in the form
+\&'LEVEL[+\-][:PATTERN]'
+LEVEL is one of:
+.TP
+trace debug info notice warning error
+critical
+PATTERN is a logging category name, or
+a namespace\-qualified function name or
+name fragment. Logging category names
+are:
+.TP
+Security Broker Management Protocol
+System HA Messaging Store Network Test
+Client Application Model Unspecified
+For example:
+\&'\-\-log\-enable warning+'
+logs all warning, error and critical
+messages.
+\&'\-\-log\-enable trace+:Broker'
+logs all category 'Broker' messages.
+\&'\-\-log\-enable debug:framing'
+logs debug messages from all functions
+with 'framing' in the namespace or
+function name.
+This option can be used multiple times
+.TP
+\fB\-\-log\-disable\fR RULE
+Disables logging for selected levels
+and components. RULE is in the form
+\&'LEVEL[+\-][:PATTERN]'
+LEVEL is one of:
+.TP
+trace debug info notice warning error
+critical
+PATTERN is a logging category name, or
+a namespace\-qualified function name or
+name fragment. Logging category names
+are:
+.TP
+Security Broker Management Protocol
+System HA Messaging Store Network Test
+Client Application Model Unspecified
+For example:
+\&'\-\-log\-disable warning\-'
+disables logging all warning, notice,
+info, debug, and trace messages.
+\&'\-\-log\-disable trace:Broker'
+disables all category 'Broker' trace
+messages.
+\&'\-\-log\-disable debug\-:qmf::'
+disables logging debug and trace
+messages from all functions with
+\&'qmf::' in the namespace.
+This option can be used multiple times
+.TP
+\fB\-\-log\-time\fR yes|no (1)
+Include time in log messages
+.TP
+\fB\-\-log\-level\fR yes|no (1)
+Include severity level in log messages
+.TP
+\fB\-\-log\-source\fR yes|no (0)
+Include source file:line in log
+messages
+.TP
+\fB\-\-log\-thread\fR yes|no (0)
+Include thread ID in log messages
+.TP
+\fB\-\-log\-function\fR yes|no (0)
+Include function signature in log
+messages
+.TP
+\fB\-\-log\-hires\-timestamp\fR yes|no (0)
+Use hi\-resolution timestamps in log
+messages
+.TP
+\fB\-\-log\-category\fR yes|no (1)
+Include category in log messages
+.TP
+\fB\-\-log\-prefix\fR STRING
+Prefix to prepend to all log messages
+.SS "Logging sink options:"
+.TP
+\fB\-\-log\-to\-stderr\fR yes|no (1)
+Send logging output to stderr
+.TP
+\fB\-\-log\-to\-stdout\fR yes|no (0)
+Send logging output to stdout
+.TP
+\fB\-\-log\-to\-file\fR FILE
+Send log output to FILE.
+.TP
+\fB\-\-log\-to\-syslog\fR yes|no (0)
+Send logging output to syslog;
+customize using \fB\-\-syslog\-name\fR and
+\fB\-\-syslog\-facility\fR
+.TP
+\fB\-\-syslog\-name\fR NAME
+Name to use in syslog messages
+.TP
+\fB\-\-syslog\-facility\fR LOG_XXX (LOG_DAEMON)
+Facility to use in syslog messages
+.PP
+Address must be specified!
+.SH AUTHOR
+
+The Apache Qpid Project, dev@qpid.apache.org
+.SH "REPORTING BUGS"
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-receive.x
----------------------------------------------------------------------
diff --git a/docs/man/qpid-receive.x b/docs/man/qpid-receive.x
new file mode 100644
index 0000000..6608eb1
--- /dev/null
+++ b/docs/man/qpid-receive.x
@@ -0,0 +1,38 @@
+.\"
+.\" 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.
+.\"
+
+[NAME]
+
+qpid-receive \- AMQP Message Receiver
+
+[SYNOPSIS]
+
+qpid-receive [OPTIONS] -a [ --address ] ADDRESS
+
+[DESCRIPTION]
+
+Receives AMQP messages from AMQP sources.
+
+[AUTHOR]
+
+The Apache Qpid Project, dev@qpid.apache.org
+
+[REPORTING BUGS]
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-route.1
----------------------------------------------------------------------
diff --git a/docs/man/qpid-route.1 b/docs/man/qpid-route.1
new file mode 100644
index 0000000..4f7674b
--- /dev/null
+++ b/docs/man/qpid-route.1
@@ -0,0 +1,99 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QPID-ROUTE "1" "March 2018" "qpid-route (qpid-cpp) version 1.38.0" "User Commands"
+.SH NAME
+
+qpid-route \- Management Tool for QPID Routes
+.SH SYNOPSIS
+
+qpid-route [OPTIONS] <commands>
+.SH DESCRIPTION
+
+Manages QPID routes.
+.IP
+qpid\-route [OPTIONS] dynamic del <dest\-broker> <src\-broker> <exchange>
+.TP
+qpid\-route [OPTIONS] route add
+<dest\-broker> <src\-broker> <exchange> <routing\-key> [tag] [exclude\-list] [mechanism]
+.TP
+qpid\-route [OPTIONS] route del
+<dest\-broker> <src\-broker> <exchange> <routing\-key>
+.TP
+qpid\-route [OPTIONS] queue add
+<dest\-broker> <src\-broker> <exchange> <queue> [mechanism]
+.TP
+qpid\-route [OPTIONS] queue del
+<dest\-broker> <src\-broker> <exchange> <queue>
+.TP
+qpid\-route [OPTIONS] route list
+[<dest\-broker>]
+.IP
+qpid\-route [OPTIONS] route flush [<dest\-broker>]
+qpid\-route [OPTIONS] route map [<broker>]
+.TP
+qpid\-route [OPTIONS] link add
+<dest\-broker> <src\-broker> [mechanism]
+.TP
+qpid\-route [OPTIONS] link del
+<dest\-broker> <src\-broker>
+.IP
+qpid\-route [OPTIONS] link list [<dest\-broker>]
+.PP
+ADDRESS syntax:
+.IP
+[username/password@] hostname
+ip\-address [:<port>]
+.SH OPTIONS
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+show this help message and exit
+.TP
+\fB\-\-timeout=\fR<secs>
+Maximum time to wait for broker connection (in seconds)
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+Verbose output
+.TP
+\fB\-q\fR, \fB\-\-quiet\fR
+Quiet output, don't print duplicate warnings
+.TP
+\fB\-d\fR, \fB\-\-durable\fR
+Added configuration shall be durable
+.TP
+\fB\-e\fR, \fB\-\-del\-empty\-link\fR
+Delete link after deleting last route on the link
+.TP
+\fB\-s\fR, \fB\-\-src\-local\fR
+Make connection to source broker (push route)
+.TP
+\fB\-\-ack=\fR<n>
+Acknowledge transfers over the bridge in batches of N
+.TP
+\fB\-\-credit=\fR<msgs>
+Maximum number of messages a sender can have outstanding (0=unlimited)
+.TP
+\fB\-t\fR <transport>, \fB\-\-transport=\fR<transport>
+Transport to use for links, defaults to tcp
+.TP
+\fB\-\-client\-sasl\-mechanism=\fR<mech>
+SASL mechanism for authentication (e.g. EXTERNAL, ANONYMOUS, PLAIN, CRAM\-MD5, DIGEST\-MD5, GSSAPI). Used when
+the client connects to the destination broker (not for authentication between the source and destination
+brokers \- that is specified using the [mechanisms] argument to 'add route'). SASL automatically picks the most
+secure available mechanism \- use this option to override.
+.TP
+\fB\-\-sasl\-service\-name\fR=\fI\,SASL_SERVICE_NAME\/\fR
+SASL service name to use
+.TP
+\fB\-\-ssl\-certificate=\fR<cert>
+Client SSL certificate (PEM Format)
+.TP
+\fB\-\-ssl\-key=\fR<key>
+Client SSL private key (PEM Format)
+.TP
+\fB\-\-ha\-admin\fR
+Allow connection to a HA backup broker.
+.SH AUTHOR
+
+The Apache Qpid Project, dev@qpid.apache.org
+.SH "REPORTING BUGS"
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-route.x
----------------------------------------------------------------------
diff --git a/docs/man/qpid-route.x b/docs/man/qpid-route.x
new file mode 100644
index 0000000..6ca5cea
--- /dev/null
+++ b/docs/man/qpid-route.x
@@ -0,0 +1,38 @@
+.\"
+.\" 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.
+.\"
+
+[NAME]
+
+qpid-route \- Management Tool for QPID Routes
+
+[SYNOPSIS]
+
+qpid-route [OPTIONS] <commands>
+
+[DESCRIPTION]
+
+Manages QPID routes.
+
+[AUTHOR]
+
+The Apache Qpid Project, dev@qpid.apache.org
+
+[REPORTING BUGS]
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-send.1
----------------------------------------------------------------------
diff --git a/docs/man/qpid-send.1 b/docs/man/qpid-send.1
new file mode 100644
index 0000000..c50988c
--- /dev/null
+++ b/docs/man/qpid-send.1
@@ -0,0 +1,255 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QPID-SEND "1" "March 2018" "qpid-send (qpid-cpp) version 1.38.0" "User Commands"
+.SH NAME
+
+qpid-send \- AMQP Message Sender
+.SH SYNOPSIS
+
+qpid-send [OPTIONS] -a [ --address ] ADDRESS
+.SH DESCRIPTION
+
+Sends AMQP messages to AMQP sources.
+.SH OPTIONS
+.TP
+\fB\-b\fR [ \fB\-\-broker\fR ] URL (127.0.0.1)
+url of broker to connect to
+.TP
+\fB\-a\fR [ \fB\-\-address\fR ] ADDRESS
+address to send to
+.TP
+\fB\-\-connection\-options\fR OPTIONS
+options for the connection
+.TP
+\fB\-m\fR [ \fB\-\-messages\fR ] N (1)
+stop after N messages have been sent, 0
+means no limit
+.TP
+\fB\-i\fR [ \fB\-\-id\fR ] ID
+use the supplied id instead of
+generating one
+.TP
+\fB\-\-reply\-to\fR REPLY\-TO
+specify reply\-to address
+.TP
+\fB\-\-send\-eos\fR N (0)
+Send N EOS messages to mark end of
+input
+.TP
+\fB\-\-durable\fR yes|no (0)
+Mark messages as durable.
+.TP
+\fB\-\-ttl\fR msecs (0)
+Time\-to\-live for messages, in
+milliseconds
+.TP
+\fB\-\-priority\fR PRIORITY (0)
+Priority for messages (higher value
+implies higher priority)
+.TP
+\fB\-P\fR [ \fB\-\-property\fR ] NAME=VALUE
+specify message property
+.TP
+\fB\-\-correlation\-id\fR ID
+correlation\-id for message
+.TP
+\fB\-\-user\-id\fR USERID
+userid for message
+.TP
+\fB\-\-auto\-user\-id\fR yes| no (0)
+set userid for message based on
+authenticated identity
+.TP
+\fB\-\-content\-string\fR CONTENT
+use CONTENT as message content
+.TP
+\fB\-\-content\-size\fR N (0)
+create an N\-byte message content
+.TP
+\fB\-M\fR [ \fB\-\-content\-map\fR ] NAME=VALUE
+specify entry for map content
+.TP
+\fB\-\-content\-stdin\fR
+read message content from stdin, one
+line per message
+.TP
+\fB\-\-capacity\fR N (1000)
+size of the senders outgoing message
+queue
+.TP
+\fB\-\-tx\fR N (0)
+batch size for transactions (0 implies
+transaction are not used)
+.TP
+\fB\-\-rollback\-frequency\fR N (0)
+rollback frequency (0 implies no
+transaction will be rolledback)
+.TP
+\fB\-\-failover\-updates\fR
+Listen for membership updates
+distributed via amq.failover
+.TP
+\fB\-\-report\-total\fR
+Report total throughput statistics
+.TP
+\fB\-\-report\-every\fR N (0)
+Report throughput statistics every N
+messages
+.TP
+\fB\-\-report\-header\fR yes|no (1)
+Headers on report.
+.TP
+\fB\-\-send\-rate\fR N (0)
+Send at rate of N messages/second. 0
+means send as fast as possible.
+.TP
+\fB\-\-sequence\fR yes|no (1)
+Add a sequence number messages property
+(required for duplicate/lost message
+detection)
+.TP
+\fB\-\-timestamp\fR yes|no (1)
+Add a time stamp messages property
+(required for latency measurement)
+.TP
+\fB\-\-group\-key\fR KEY
+Generate groups of messages using
+message header 'KEY' to hold the group
+identifier
+.TP
+\fB\-\-group\-prefix\fR STRING (GROUP\-)
+Generate group identifers with 'STRING'
+prefix (if group\-key specified)
+.TP
+\fB\-\-group\-size\fR N (10)
+Number of messages per a group (if
+group\-key specified)
+.TP
+\fB\-\-group\-randomize\-size\fR
+Randomize the number of messages per
+group to [1...group\-size] (if group\-key
+specified)
+.TP
+\fB\-\-group\-interleave\fR N (1)
+Simultaineously interleave messages
+from N different groups (if group\-key
+specified)
+.TP
+\fB\-\-help\fR
+print this usage statement
+.SS "Logging options:"
+.TP
+\fB\-t\fR [ \fB\-\-trace\fR ]
+Enables all logging
+.TP
+\fB\-\-log\-enable\fR RULE (notice+)
+Enables logging for selected levels and
+components. RULE is in the form
+\&'LEVEL[+\-][:PATTERN]'
+LEVEL is one of:
+.TP
+trace debug info notice warning error
+critical
+PATTERN is a logging category name, or
+a namespace\-qualified function name or
+name fragment. Logging category names
+are:
+.TP
+Security Broker Management Protocol
+System HA Messaging Store Network Test
+Client Application Model Unspecified
+For example:
+\&'\-\-log\-enable warning+'
+logs all warning, error and critical
+messages.
+\&'\-\-log\-enable trace+:Broker'
+logs all category 'Broker' messages.
+\&'\-\-log\-enable debug:framing'
+logs debug messages from all functions
+with 'framing' in the namespace or
+function name.
+This option can be used multiple times
+.TP
+\fB\-\-log\-disable\fR RULE
+Disables logging for selected levels
+and components. RULE is in the form
+\&'LEVEL[+\-][:PATTERN]'
+LEVEL is one of:
+.TP
+trace debug info notice warning error
+critical
+PATTERN is a logging category name, or
+a namespace\-qualified function name or
+name fragment. Logging category names
+are:
+.TP
+Security Broker Management Protocol
+System HA Messaging Store Network Test
+Client Application Model Unspecified
+For example:
+\&'\-\-log\-disable warning\-'
+disables logging all warning, notice,
+info, debug, and trace messages.
+\&'\-\-log\-disable trace:Broker'
+disables all category 'Broker' trace
+messages.
+\&'\-\-log\-disable debug\-:qmf::'
+disables logging debug and trace
+messages from all functions with
+\&'qmf::' in the namespace.
+This option can be used multiple times
+.TP
+\fB\-\-log\-time\fR yes|no (1)
+Include time in log messages
+.TP
+\fB\-\-log\-level\fR yes|no (1)
+Include severity level in log messages
+.TP
+\fB\-\-log\-source\fR yes|no (0)
+Include source file:line in log
+messages
+.TP
+\fB\-\-log\-thread\fR yes|no (0)
+Include thread ID in log messages
+.TP
+\fB\-\-log\-function\fR yes|no (0)
+Include function signature in log
+messages
+.TP
+\fB\-\-log\-hires\-timestamp\fR yes|no (0)
+Use hi\-resolution timestamps in log
+messages
+.TP
+\fB\-\-log\-category\fR yes|no (1)
+Include category in log messages
+.TP
+\fB\-\-log\-prefix\fR STRING
+Prefix to prepend to all log messages
+.SS "Logging sink options:"
+.TP
+\fB\-\-log\-to\-stderr\fR yes|no (1)
+Send logging output to stderr
+.TP
+\fB\-\-log\-to\-stdout\fR yes|no (0)
+Send logging output to stdout
+.TP
+\fB\-\-log\-to\-file\fR FILE
+Send log output to FILE.
+.TP
+\fB\-\-log\-to\-syslog\fR yes|no (0)
+Send logging output to syslog;
+customize using \fB\-\-syslog\-name\fR and
+\fB\-\-syslog\-facility\fR
+.TP
+\fB\-\-syslog\-name\fR NAME
+Name to use in syslog messages
+.TP
+\fB\-\-syslog\-facility\fR LOG_XXX (LOG_DAEMON)
+Facility to use in syslog messages
+.PP
+Address must be specified!
+.SH AUTHOR
+
+The Apache Qpid Project, dev@qpid.apache.org
+.SH "REPORTING BUGS"
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-send.x
----------------------------------------------------------------------
diff --git a/docs/man/qpid-send.x b/docs/man/qpid-send.x
new file mode 100644
index 0000000..60723a7
--- /dev/null
+++ b/docs/man/qpid-send.x
@@ -0,0 +1,38 @@
+.\"
+.\" 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.
+.\"
+
+[NAME]
+
+qpid-send \- AMQP Message Sender
+
+[SYNOPSIS]
+
+qpid-send [OPTIONS] -a [ --address ] ADDRESS
+
+[DESCRIPTION]
+
+Sends AMQP messages to AMQP sources.
+
+[AUTHOR]
+
+The Apache Qpid Project, dev@qpid.apache.org
+
+[REPORTING BUGS]
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-stat.1
----------------------------------------------------------------------
diff --git a/docs/man/qpid-stat.1 b/docs/man/qpid-stat.1
new file mode 100644
index 0000000..24551a2
--- /dev/null
+++ b/docs/man/qpid-stat.1
@@ -0,0 +1,88 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QPID-STAT "1" "March 2018" "qpid-stat (qpid-cpp) version 1.38.0" "User Commands"
+.SH NAME
+
+qpid-stat \- Show QPID Broker Stats
+.SH SYNOPSIS
+
+qpid-stat <commands> [OPTIONS]
+.SH DESCRIPTION
+
+Shows general broker stats, connections, exchanges, queues,
+subsriptions, access control list stats and broker memory stats.
+
+Usage: qpid-stat -g [options]
+ qpid-stat -c [options]
+ qpid-stat -e [options]
+ qpid-stat -q [options] [queue-name]
+ qpid-stat -u [options]
+ qpid-stat -m [options]
+ qpid-stat --acl [options]
+.SH OPTIONS
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+show this help message and exit
+.IP
+General Options:
+.TP
+\fB\-b\fR <url>, \fB\-\-broker=\fR<url>
+URL of the broker to query
+.TP
+\fB\-t\fR <secs>, \fB\-\-timeout=\fR<secs>
+Maximum time to wait for broker connection (in seconds)
+.TP
+\fB\-\-sasl\-mechanism=\fR<mech>
+SASL mechanism for authentication (e.g. EXTERNAL, ANONYMOUS, PLAIN, CRAM\-MD5, DIGEST\-MD5, GSSAPI). SASL
+automatically picks the most secure available mechanism \- use this option to override.
+.TP
+\fB\-\-sasl\-service\-name\fR=\fI\,SASL_SERVICE_NAME\/\fR
+SASL service name to use
+.TP
+\fB\-\-ssl\-certificate=\fR<cert>
+Client SSL certificate (PEM Format)
+.TP
+\fB\-\-ssl\-key=\fR<key>
+Client SSL private key (PEM Format)
+.TP
+\fB\-\-ha\-admin\fR
+Allow connection to a HA backup broker.
+.IP
+Command Options:
+.TP
+\fB\-g\fR, \fB\-\-general\fR
+Show General Broker Stats
+.TP
+\fB\-c\fR, \fB\-\-connections\fR
+Show Connections
+.TP
+\fB\-e\fR, \fB\-\-exchanges\fR
+Show Exchanges
+.TP
+\fB\-q\fR, \fB\-\-queues\fR
+Show Queues
+.TP
+\fB\-u\fR, \fB\-\-subscriptions\fR
+Show Subscriptions
+.TP
+\fB\-m\fR, \fB\-\-memory\fR
+Show Broker Memory Stats
+.TP
+\fB\-\-acl\fR
+Show Access Control List Stats
+.IP
+Display Options:
+.TP
+\fB\-S\fR <colname>, \fB\-\-sort\-by=\fR<colname>
+Sort by column name
+.TP
+\fB\-I\fR, \fB\-\-increasing\fR
+Sort by increasing value (default = decreasing)
+.TP
+\fB\-L\fR <n>, \fB\-\-limit=\fR<n>
+Limit output to n rows
+.SH AUTHOR
+
+The Apache Qpid Project, dev@qpid.apache.org
+.SH "REPORTING BUGS"
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-stat.x
----------------------------------------------------------------------
diff --git a/docs/man/qpid-stat.x b/docs/man/qpid-stat.x
new file mode 100644
index 0000000..09e8fea
--- /dev/null
+++ b/docs/man/qpid-stat.x
@@ -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.
+.\"
+
+[NAME]
+
+qpid-stat \- Show QPID Broker Stats
+
+[SYNOPSIS]
+
+qpid-stat <commands> [OPTIONS]
+
+[=DESCRIPTION]
+
+Shows general broker stats, connections, exchanges, queues,
+subsriptions, access control list stats and broker memory stats.
+
+Usage: qpid-stat -g [options]
+ qpid-stat -c [options]
+ qpid-stat -e [options]
+ qpid-stat -q [options] [queue-name]
+ qpid-stat -u [options]
+ qpid-stat -m [options]
+ qpid-stat --acl [options]
+
+[AUTHOR]
+
+The Apache Qpid Project, dev@qpid.apache.org
+
+[REPORTING BUGS]
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-tool.1
----------------------------------------------------------------------
diff --git a/docs/man/qpid-tool.1 b/docs/man/qpid-tool.1
new file mode 100644
index 0000000..21ab702
--- /dev/null
+++ b/docs/man/qpid-tool.1
@@ -0,0 +1,37 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QPID-TOOL "1" "March 2018" "qpid-tool (qpid-cpp) version 1.38.0" "User Commands"
+.SH NAME
+
+qpid-tool \- Management Tool for QPID
+.SH SYNOPSIS
+
+qpid-tool [OPTIONS] [[<username>/<password>@]<target-host>[:<tcp-port>]]
+.SH DESCRIPTION
+
+Prints lists of objects, object's content and sets timestamp format.
+.SH OPTIONS
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+show this help message and exit
+.TP
+\fB\-b\fR <address>, \fB\-\-broker=\fR<address>
+Address of qpidd broker with syntax: [username/password@] hostname | ip\-address [:<port>]
+.TP
+\fB\-\-sasl\-mechanism=\fR<mech>
+SASL mechanism for authentication (e.g. EXTERNAL, ANONYMOUS, PLAIN, CRAM\-MD5, DIGEST\-MD5, GSSAPI). SASL
+automatically picks the most secure available mechanism \- use this option to override.
+.TP
+\fB\-\-sasl\-service\-name\fR=\fI\,SASL_SERVICE_NAME\/\fR
+SASL service name to use
+.TP
+\fB\-\-ssl\-certificate=\fR<path>
+SSL certificate for client authentication
+.TP
+\fB\-\-ssl\-key=\fR<path>
+Private key (if not contained in certificate)
+.SH AUTHOR
+
+The Apache Qpid Project, dev@qpid.apache.org
+.SH "REPORTING BUGS"
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpid-tool.x
----------------------------------------------------------------------
diff --git a/docs/man/qpid-tool.x b/docs/man/qpid-tool.x
new file mode 100644
index 0000000..8f60c2f
--- /dev/null
+++ b/docs/man/qpid-tool.x
@@ -0,0 +1,38 @@
+.\"
+.\" 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.
+.\"
+
+[NAME]
+
+qpid-tool \- Management Tool for QPID
+
+[SYNOPSIS]
+
+qpid-tool [OPTIONS] [[<username>/<password>@]<target-host>[:<tcp-port>]]
+
+[DESCRIPTION]
+
+Prints lists of objects, object's content and sets timestamp format.
+
+[AUTHOR]
+
+The Apache Qpid Project, dev@qpid.apache.org
+
+[REPORTING BUGS]
+
+Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpidd.1
----------------------------------------------------------------------
diff --git a/docs/man/qpidd.1 b/docs/man/qpidd.1
index 58234b0..26e1c19 100644
--- a/docs/man/qpidd.1
+++ b/docs/man/qpidd.1
@@ -1,369 +1,523 @@
-.\"
-.\" 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.
-.\"
-
-.TH QPIDD "1" "November 2017" "qpidd (qpid-cpp) version 1.38.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
+.TH QPIDD "1" "March 2018" "qpidd (qpid-cpp) version 1.38.0" "User Commands"
.SH NAME
qpidd \- the Qpid AMQP Message Broker Daemon
-
.SH SYNOPSIS
-qpidd [-p port] [--config config_file] [--data-dir directory]
-
+qpidd [OPTIONS]
.SH DESCRIPTION
An AMQP message broker daemon that stores, routes and forwards
messages using the Advanced Message Queueing Protocol (AMQP).
-
.SH OPTIONS
The options below are built-in to qpidd. Installing add-on modules provides additional options. To see the full set of options available type "qpidd --help"
Options may be specified via command line, environment variable or configuration file. See FILES and ENVIRONMENT below for details.
-
-.PP
-
-.SS Options
-
.TP
-\-h [ \-\-help ]
+\fB\-h\fR [ \fB\-\-help\fR ]
Displays the help message
.TP
-\-v [ \-\-version ]
+\fB\-v\fR [ \fB\-\-version\fR ]
Displays version information
.TP
-\-\-config FILE (/etc/qpid/qpidd.conf)
+\fB\-\-config\fR FILE (/etc/qpid/qpidd.conf)
Reads configuration from FILE
-\-\-client\-config FILE (/etc/qpid/qpidc.conf)
-Reads client configuration from FILE
+.TP
+\fB\-\-client\-config\fR FILE (/etc/qpid/qpidc.conf)
+Reads client configuration from FILE
(for cluster interconnect)
-
-.SS Module options
-\-\-module\-dir DIR (/usr/lib64/qpid/daemon)
-Load all shareable modules in this
+.SS "Module options:"
+.TP
+\fB\-\-module\-dir\fR DIR (/usr/lib64/qpid/daemon)
+Load all shareable modules in this
directory
.TP
-\-\-load\-module FILE
-Specifies additional module(s) to be
+\fB\-\-load\-module\fR FILE
+Specifies additional module(s) to be
loaded
.TP
-\-\-no\-module\-dir
-Don't load modules from module
+\fB\-\-no\-module\-dir\fR
+Don't load modules from module
directory
-
-.SS Broker Options
-\-\-data\-dir DIR (/home/aconway/.qpidd)
-Directory to contain persistent data
+.SS "Broker Options:"
+.TP
+\fB\-\-data\-dir\fR DIR ($HOME/.qpidd)
+Directory to contain persistent data
generated by the broker
.TP
-\-\-no\-data\-dir
-Don't use a data directory. No
+\fB\-\-no\-data\-dir\fR
+Don't use a data directory. No
persistent configuration will be loaded
or stored
.TP
-\-\-paging\-dir DIR
+\fB\-\-paging\-dir\fR DIR
Directory in which paging files will be
created for paged queues
.TP
-\-p [ \-\-port ] PORT (5672)
+\fB\-p\fR [ \fB\-\-port\fR ] PORT (5672)
Tells the broker to listen on PORT
-\-\-interface <interface name>|<interface address>
-Which network interfaces to use to
+.TP
+\fB\-\-interface\fR <interface name>|<interface address>
+Which network interfaces to use to
listen for incoming connections
-\-\-listen\-disable <transport name> Transports to disable listening
.TP
-\-\-worker\-threads N (5)
+\fB\-\-listen\-disable\fR <transport name>
+Transports to disable listening
+.TP
+\fB\-\-protocols\fR <protocol name+version>
+Which protocol versions to allow
+.TP
+\fB\-\-worker\-threads\fR N (9)
Sets the broker thread pool size
.TP
-\-\-connection\-backlog N (10)
-Sets the connection backlog limit for
+\fB\-\-connection\-backlog\fR N (10)
+Sets the connection backlog limit for
the server socket
.TP
-\-m [ \-\-mgmt\-enable ] yes|no (1)
+\fB\-m\fR [ \fB\-\-mgmt\-enable\fR ] yes|no (1)
Enable Management
.TP
-\-\-mgmt\-publish yes|no (1)
-Enable Publish of Management Data (\&'no'
+\fB\-\-mgmt\-publish\fR yes|no (1)
+Enable Publish of Management Data ('no'
implies query\-only)
.TP
-\-\-mgmt\-qmf2 yes|no (1)
-Enable broadcast of management
+\fB\-\-mgmt\-qmf2\fR yes|no (1)
+Enable broadcast of management
information over QMF v2
.TP
-\-\-mgmt\-qmf1 yes|no (0)
-Enable broadcast of management
+\fB\-\-mgmt\-qmf1\fR yes|no (0)
+Enable broadcast of management
information over QMF v1
.TP
-\-\-mgmt\-pub\-interval SECONDS (10s)
+\fB\-\-mgmt\-pub\-interval\fR SECONDS (10s)
Management Publish Interval
-\-\-queue\-purge\-interval SECONDS (600s)
-Interval between attempts to purge any
+.TP
+\fB\-\-queue\-purge\-interval\fR SECONDS (600s)
+Interval between attempts to purge any
expired messages from queues
.TP
-\-\-auth yes|no (1)
-Enable authentication, if disabled all
+\fB\-\-auth\fR yes|no (1)
+Enable authentication, if disabled all
incoming connections will be trusted
.TP
-\-\-realm REALM (QPID)
-Use the given realm when performing
+\fB\-\-realm\fR REALM (QPID)
+Use the given realm when performing
authentication
-\-\-default\-queue\-limit BYTES (104857600)
-Default maximum size for queues (in
+.TP
+\fB\-\-sasl\-service\-name\fR NAME
+The service name to specify for SASL
+.TP
+\fB\-\-default\-queue\-limit\fR BYTES (104857600)
+Default maximum size for queues (in
bytes)
.TP
-\-\-tcp\-nodelay
+\fB\-\-tcp\-nodelay\fR
Set TCP_NODELAY on TCP connections
.TP
-\-\-require\-encryption
-Only accept connections that are
+\fB\-\-require\-encryption\fR
+Only accept connections that are
encrypted
-\-\-known\-hosts\-url URL or \&'none' (none)
-URL to send as \&'known\-hosts' to clients
-(\&'none' implies empty list)
-.TP
-\-\-sasl\-config DIR
-Allows SASL config path, if supported
-by platform, to be overridden. For
-default location on Linux, see Cyrus
-SASL documentation. There is no SASL
+.TP
+\fB\-\-known\-hosts\-url\fR URL or 'none' (none)
+URL to send as 'known\-hosts' to clients
+('none' implies empty list)
+.TP
+\fB\-\-sasl\-config\fR DIR
+Allows SASL config path, if supported
+by platform, to be overridden. For
+default location on Linux, see Cyrus
+SASL documentation. There is no SASL
config dir on Windows.
-\-\-default\-flow\-stop\-threshold PERCENT (80)
-Percent of queue's maximum capacity at
+.TP
+\fB\-\-default\-flow\-stop\-threshold\fR PERCENT (80)
+Percent of queue's maximum capacity at
which flow control is activated.
-\-\-default\-flow\-resume\-threshold PERCENT (70)
-Percent of queue's maximum capacity at
+.TP
+\fB\-\-default\-flow\-resume\-threshold\fR PERCENT (70)
+Percent of queue's maximum capacity at
which flow control is de\-activated.
-\-\-default\-event\-threshold\-ratio %age of limit (80)
-The ratio of any specified queue limit
+.TP
+\fB\-\-default\-event\-threshold\-ratio\fR %age of limit (80)
+The ratio of any specified queue limit
at which an event will be raised
-\-\-default\-message\-group GROUP\-IDENTIFER (qpid.no\-group)
-Group identifier to assign to messages
+.TP
+\fB\-\-default\-message\-group\fR GROUP\-IDENTIFER (qpid.no\-group)
+Group identifier to assign to messages
delivered to a message group queue that
do not contain an identifier.
.TP
-\-\-enable\-timestamp yes|no (0)
-Add current time to each received
+\fB\-\-enable\-timestamp\fR yes|no (0)
+Add current time to each received
message.
-\-\-link\-maintenance\-interval SECONDS (2s)
-Interval to check link health and
.TP
- re\-connect
-if need be
-\-\-link\-heartbeat\-interval SECONDS (120s)
-Heartbeat interval for a federation
+\fB\-\-link\-maintenance\-interval\fR SECONDS (2s)
+Interval to check federation link
+health and re\-connect if need be
+.TP
+\fB\-\-link\-heartbeat\-interval\fR SECONDS (120s)
+Heartbeat interval for a federation
link
-\-\-max\-negotiate\-time MILLISECONDS (10000)
-Maximum time a connection can take to
+.TP
+\fB\-\-dtx\-default\-timeout\fR SECONDS (60)
+Default timeout for DTX transaction
+before aborting it
+.TP
+\fB\-\-dtx\-max\-timeout\fR SECONDS (3600)
+Maximum allowed timeout for DTX
+transaction. A value of zero disables
+maximum timeout limit checks and allows
+arbitrarily large timeout settings.
+.TP
+\fB\-\-max\-negotiate\-time\fR MILLISECONDS (10000)
+Maximum time a connection can take to
send the initial protocol negotiation
.TP
-\-\-federation\-tag NAME
+\fB\-\-federation\-tag\fR NAME
Override the federation tag
-
-.SS Logging options
.TP
-\-t [ \-\-trace ]
+\fB\-\-session\-max\-unacked\fR DELIVERIES (5000)
+Maximum number of un\-acknowledged
+outoing messages per sesssion
+.SS "Logging options:"
+.TP
+\fB\-t\fR [ \fB\-\-trace\fR ]
Enables all logging
.TP
-\-\-log\-enable RULE (notice+)
+\fB\-\-log\-enable\fR RULE (notice+)
Enables logging for selected levels and
-components. RULE is in the form
+components. RULE is in the form
\&'LEVEL[+\-][:PATTERN]'
-LEVEL is one of:
-trace debug info notice warning error
+LEVEL is one of:
+.TP
+trace debug info notice warning error
critical
-PATTERN is a logging category name, or
-a namespace\-qualified function name or
-name fragment. Logging category names
-are:
-Security Broker Management Protocol
-System HA Messaging Store Network Test
-Client Model Unspecified
+PATTERN is a logging category name, or
+a namespace\-qualified function name or
+name fragment. Logging category names
+are:
+.TP
+Security Broker Management Protocol
+System HA Messaging Store Network Test
+Client Application Model Unspecified
For example:
\&'\-\-log\-enable warning+'
-logs all warning, error and critical
+logs all warning, error and critical
messages.
\&'\-\-log\-enable trace+:Broker'
-logs all category \&'Broker' messages.
+logs all category 'Broker' messages.
\&'\-\-log\-enable debug:framing'
-logs debug messages from all functions
-with \&'framing' in the namespace or
+logs debug messages from all functions
+with 'framing' in the namespace or
function name.
This option can be used multiple times
.TP
-\-\-log\-disable RULE
-Disables logging for selected levels
-and components. RULE is in the form
+\fB\-\-log\-disable\fR RULE
+Disables logging for selected levels
+and components. RULE is in the form
\&'LEVEL[+\-][:PATTERN]'
-LEVEL is one of:
-trace debug info notice warning error
+LEVEL is one of:
+.TP
+trace debug info notice warning error
critical
-PATTERN is a logging category name, or
-a namespace\-qualified function name or
-name fragment. Logging category names
-are:
-Security Broker Management Protocol
-System HA Messaging Store Network Test
-Client Model Unspecified
+PATTERN is a logging category name, or
+a namespace\-qualified function name or
+name fragment. Logging category names
+are:
+.TP
+Security Broker Management Protocol
+System HA Messaging Store Network Test
+Client Application Model Unspecified
For example:
\&'\-\-log\-disable warning\-'
-disables logging all warning, notice,
+disables logging all warning, notice,
info, debug, and trace messages.
\&'\-\-log\-disable trace:Broker'
-disables all category \&'Broker' trace
+disables all category 'Broker' trace
messages.
\&'\-\-log\-disable debug\-:qmf::'
-disables logging debug and trace
-messages from all functions with
+disables logging debug and trace
+messages from all functions with
\&'qmf::' in the namespace.
This option can be used multiple times
.TP
-\-\-log\-time yes|no (1)
+\fB\-\-log\-time\fR yes|no (1)
Include time in log messages
.TP
-\-\-log\-level yes|no (1)
+\fB\-\-log\-level\fR yes|no (1)
Include severity level in log messages
.TP
-\-\-log\-source yes|no (0)
-Include source file:line in log
+\fB\-\-log\-source\fR yes|no (0)
+Include source file:line in log
messages
.TP
-\-\-log\-thread yes|no (0)
+\fB\-\-log\-thread\fR yes|no (0)
Include thread ID in log messages
.TP
-\-\-log\-function yes|no (0)
-Include function signature in log
+\fB\-\-log\-function\fR yes|no (0)
+Include function signature in log
messages
.TP
-\-\-log\-hires\-timestamp yes|no (0)
-Use hi\-resolution timestamps in log
+\fB\-\-log\-hires\-timestamp\fR yes|no (0)
+Use hi\-resolution timestamps in log
messages
.TP
-\-\-log\-category yes|no (1)
+\fB\-\-log\-category\fR yes|no (1)
Include category in log messages
.TP
-\-\-log\-prefix STRING
+\fB\-\-log\-prefix\fR STRING
Prefix to prepend to all log messages
-
-.SS Logging sink options
+.SS "Logging sink options:"
.TP
-\-\-log\-to\-stderr yes|no (1)
+\fB\-\-log\-to\-stderr\fR yes|no (1)
Send logging output to stderr
.TP
-\-\-log\-to\-stdout yes|no (0)
+\fB\-\-log\-to\-stdout\fR yes|no (0)
Send logging output to stdout
.TP
-\-\-log\-to\-file FILE
+\fB\-\-log\-to\-file\fR FILE
Send log output to FILE.
.TP
-\-\-log\-to\-syslog yes|no (0)
+\fB\-\-log\-to\-syslog\fR yes|no (0)
Send logging output to syslog;
-customize using \-\-syslog\-name and
-\-\-syslog\-facility
+customize using \fB\-\-syslog\-name\fR and
+\fB\-\-syslog\-facility\fR
.TP
-\-\-syslog\-name NAME (qpidd)
+\fB\-\-syslog\-name\fR NAME (qpidd)
Name to use in syslog messages
-\-\-syslog\-facility LOG_XXX (LOG_DAEMON)
+.TP
+\fB\-\-syslog\-facility\fR LOG_XXX (LOG_DAEMON)
Facility to use in syslog messages
-
-.SS Daemon options
+.SS "Daemon options:"
.TP
-\-d [ \-\-daemon ]
-Run as a daemon. Logs to syslog by
+\fB\-d\fR [ \fB\-\-daemon\fR ]
+Run as a daemon. Logs to syslog by
default in this mode.
.TP
-\-\-transport TRANSPORT (tcp)
-The transport for which to return the
+\fB\-\-transport\fR TRANSPORT (tcp)
+The transport for which to return the
port
.TP
-\-\-pid\-dir DIR (/home/aconway/.qpidd)
-Directory where port\-specific PID file
+\fB\-\-pid\-dir\fR DIR ($HOME/.qpidd)
+Directory where port\-specific PID file
is stored
.TP
-\-w [ \-\-wait ] SECONDS (600)
-Sets the maximum wait time to
-initialize or shutdown the daemon. If
+\fB\-\-pidfile\fR FILE
+File name to store the PID in daemon
+mode. Used as\-is, no directory or
+suffixes added.
+.TP
+\fB\-\-close\-fd\fR FD
+File descriptors that the daemon should
+close
+.TP
+\fB\-w\fR [ \fB\-\-wait\fR ] SECONDS (600)
+Sets the maximum wait time to
+initialize or shutdown the daemon. If
the daemon fails to initialize/shutdown
, prints an error and returns 1
.TP
-\-c [ \-\-check ]
-Prints the daemon's process ID to
-stdout and returns 0 if the daemon is
+\fB\-c\fR [ \fB\-\-check\fR ]
+Prints the daemon's process ID to
+stdout and returns 0 if the daemon is
running, otherwise returns 1
.TP
-\-q [ \-\-quit ]
-Tells the daemon to shut down
-
+\fB\-q\fR [ \fB\-\-quit\fR ]
+Tells the daemon to shut down with an
+INT signal
.TP
-\-\-socket\-fd FD
-File descriptor for tcp listening socket
-
-.SS ACL Options
+\fB\-k\fR [ \fB\-\-kill\fR ]
+Kill the daemon with a KILL signal.
.TP
-\-\-acl\-file FILE
-The policy file to load from, loaded from
-data dir
+\fB\-\-socket\-fd\fR FD
+File descriptor for tcp listening
+socket
+.SS "ACL Options:"
.TP
-\-\-connection\-limit\-per\-user N (0)
-The maximum number of connections allowed
-per user. 0 implies no limit.
+\fB\-\-acl\-file\fR FILE
+The policy file to load from, loaded
+from data dir
.TP
-\-\-max\-connections N (500)
-The maximum combined number of connections
-allowed. 0 implies no limit.
+\fB\-\-connection\-limit\-per\-user\fR N (0)
+The maximum number of connections
+allowed per user. 0 implies no limit.
.TP
-\-\-connection\-limit\-per\-ip N (0)
-The maximum number of connections allowed
-per host IP address. 0 implies no limit.
+\fB\-\-max\-connections\fR N (500)
+The maximum combined number of
+connections allowed. 0 implies no
+limit.
.TP
-\-\-max\-queues\-per\-user N (0)
-The maximum number of queues allowed per
-user. 0 implies no limit.
-
-.SS SSL Settings
+\fB\-\-connection\-limit\-per\-ip\fR N (0)
+The maximum number of connections
+allowed per host IP address. 0 implies
+no limit.
+.TP
+\fB\-\-max\-queues\-per\-user\fR N (0)
+The maximum number of queues allowed
+per user. 0 implies no limit.
+.SS "SSL Settings:"
.TP
-\-\-ssl\-use\-export\-policy
+\fB\-\-ssl\-use\-export\-policy\fR
Use NSS export policy
.TP
-\-\-ssl\-cert\-password\-file PATH
-File containing password to use for
+\fB\-\-ssl\-cert\-password\-file\fR PATH
+File containing password to use for
accessing certificate database
.TP
-\-\-ssl\-cert\-db PATH
-Path to directory containing certificate
-database
+\fB\-\-ssl\-cert\-db\fR PATH
+Path to directory containing
+certificate database
.TP
-\-\-ssl\-cert\-name NAME (gonzo)
+\fB\-\-ssl\-cert\-name\fR NAME (localhost.localdomain)
Name of the certificate to use
.TP
-\-\-ssl\-port PORT (5671)
-Port on which to listen for SSL
+\fB\-\-ssl\-port\fR PORT (5671)
+Port on which to listen for SSL
connections
.TP
-\-\-ssl\-require\-client\-authentication
-Forces clients to authenticate in order
+\fB\-\-ssl\-require\-client\-authentication\fR
+Forces clients to authenticate in order
to establish an SSL connection
.TP
-\-\-ssl\-sasl\-no\-dict
-Disables SASL mechanisms that are
-vulnerable to passive dictionary\-based
+\fB\-\-ssl\-sasl\-no\-dict\fR
+Disables SASL mechanisms that are
+vulnerable to passive dictionary\-based
password attacks
+.SS "AMQP 1.0 Options:"
+.TP
+\fB\-\-domain\fR DOMAIN
+Domain of this broker
+.TP
+\fB\-\-queue\-patterns\fR PATTERN
+Pattern for on\-demand queues
+.TP
+\fB\-\-topic\-patterns\fR PATTERN
+Pattern for on\-demand topics
+.SS "HA Options:"
+.TP
+\fB\-\-ha\-cluster\fR yes|no (0)
+Join a HA active/passive cluster.
+.TP
+\fB\-\-ha\-queue\-replication\fR yes|no (0)
+Enable replication of specific queues
+without joining a cluster
+.TP
+\fB\-\-ha\-brokers\-url\fR URL
+URL with address of each broker in the
+cluster.
+.TP
+\fB\-\-ha\-public\-url\fR URL
+URL advertized to clients to connect to
+the cluster.
+.TP
+\fB\-\-ha\-replicate\fR LEVEL (none)
+Replication level for creating queues
+and exchanges if there is no
+qpid.replicate argument supplied. LEVEL
+is 'none', 'configuration' or 'all'
+.TP
+\fB\-\-ha\-username\fR USER
+Username for connections between HA
+brokers
+.TP
+\fB\-\-ha\-password\fR PASS
+Password for connections between HA
+brokers
+.TP
+\fB\-\-ha\-mechanism\fR MECH
+Authentication mechanism for
+connections between HA brokers
+.TP
+\fB\-\-ha\-backup\-timeout\fR SECONDS (10s)
+Maximum time to wait for an expected
+backup to connect and become ready.
+.TP
+\fB\-\-ha\-flow\-messages\fR N (1000)
+Flow control message count limit for
+replication, 0 means no limit
+.TP
+\fB\-\-ha\-flow\-bytes\fR N (0)
+Flow control byte limit for
+replication, 0 means no limit
+.SS "Linear Store Options:"
+.TP
+\fB\-\-store\-dir\fR DIR
+Store directory location for
+persistence (instead of using
+\fB\-\-data\-dir\fR value). Required if
+\fB\-\-no\-data\-dir\fR is also used.
+.TP
+\fB\-\-truncate\fR yes|no (0)
+If yes|true|1, will truncate the store
+(discard any existing records). If
+no|false|0, will preserve the existing
+store files for recovery.
+.TP
+\fB\-\-wcache\-page\-size\fR N (16)
+Size of the pages in the write page
+cache in KiB. Allowable values \- powers
+of 2 starting at 4 (4, 8, 16, 32...)
+Lower values decrease latency at the
+expense of throughput.
+.TP
+\fB\-\-wcache\-num\-pages\fR N (16)
+Number of pages in the write page
+cache. Minimum value: 4.
+.TP
+\fB\-\-tpl\-wcache\-page\-size\fR N (4)
+Size of the pages in the transaction
+prepared list write page cache in KiB.
+Allowable values \- powers of 2 starting
+at: 4 (4, 8, 16, 32...) Lower values
+decrease latency at the expense of
+throughput.
+.TP
+\fB\-\-tpl\-wcache\-num\-pages\fR N (16)
+Number of pages in the transaction
+prepared list write page cache. Minimum
+value: 4.
+.TP
+\fB\-\-efp\-partition\fR N (1)
+Empty File Pool partition to use for
+finding empty journal files
+.TP
+\fB\-\-efp\-file\-size\fR N (2048)
+Empty File Pool file size in KiB to use
+for journal files. Must be a multiple
+of 4 KiB.
+.TP
+\fB\-\-overwrite\-before\-return\fR yes|no (0)
+If yes|true|1, will overwrite each
+store file with zeros before returning
+it to the Empty File Pool. When not in
+use (the default), then old message
+data remains in the file, but is
+overwritten on next use. This option
+should only be used where security
+considerations justify it as it makes
+the store somewhat slower.
+.TP
+\fB\-\-journal\-flush\-timeout\fR SECONDS (500ms)
+Maximum time to wait to flush journal.
+Use ms, us units for small time values
+(eg 10ms) \- no space between value and
+unit.
+.SS "Store Options:"
+.TP
+\fB\-\-storage\-provider\fR PROVIDER
+Name of the storage provider to use.
+.SH ENVIRONMENT
+.I QPID_<option>
+.RS
+There is an environment variable for each option.
+.RE
+
+The environment variable is the option name in uppercase, prefixed with QPID_ and '.' or '-' are replaced with '_'. Environment settings are over-ridden by command line settings. For example:
+ export QPID_PORT=6000
+ export QPID_MAX_CONNECTIONS=10
+ export QPID_LOG_TO_FILE=/tmp/qpidd.log
.SH FILES
.I /etc/qpidd.conf
.RS
@@ -378,23 +532,9 @@ Each line is a name=value pair. Blank lines and lines beginning with # are ignor
port=6000
max-connections=10
log-to-file=/tmp/qpidd.log
-
-.SH ENVIRONMENT
-.I QPID_<option>
-.RS
-There is an environment variable for each option.
-.RE
-
-The environment variable is the option name in uppercase, prefixed with QPID_ and '.' or '-' are replaced with '_'. Environment settings are over-ridden by command line settings. For example:
-
- export QPID_PORT=6000
- export QPID_MAX_CONNECTIONS=10
- export QPID_LOG_TO_FILE=/tmp/qpidd.log
-
.SH AUTHOR
The Apache Qpid Project, dev@qpid.apache.org
-
-.SH REPORTING BUGS
+.SH "REPORTING BUGS"
Please report bugs to users@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/cd6cad73/docs/man/qpidd.x
----------------------------------------------------------------------
diff --git a/docs/man/qpidd.x b/docs/man/qpidd.x
index 6efa5f3..7ad7e71 100644
--- a/docs/man/qpidd.x
+++ b/docs/man/qpidd.x
@@ -23,7 +23,7 @@ qpidd \- the Qpid AMQP Message Broker Daemon
[SYNOPSIS]
-qpidd [-p port] [--config config_file] [--data-dir directory]
+qpidd [OPTIONS]
[DESCRIPTION]
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[03/14] qpid-cpp git commit: QPID-7630: Add a CMake switch to allow
-Werror to be switched off
Posted by jr...@apache.org.
QPID-7630: Add a CMake switch to allow -Werror to be switched off
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/5d28224e
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/5d28224e
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/5d28224e
Branch: refs/heads/master
Commit: 5d28224e6108136284ebef9a23a01d1e226d1404
Parents: cd6cad7
Author: Justin Ross <jr...@apache.org>
Authored: Mon Mar 12 16:37:14 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
CMakeLists.txt | 2 +-
src/CMakeLists.txt | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/5d28224e/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d0b8b1f..c99bced 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -147,7 +147,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL GNU)
# -Wunreachable-code -Wpadded -Winline
# -Wshadow - warns about boost headers.
set (WARNING_FLAGS
- "-Werror -pedantic -Wall -Wextra -Wno-shadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch -Wno-system-headers -Woverloaded-virtual -Wno-deprecated-declarations")
+ "-pedantic -Wall -Wextra -Wno-shadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch -Wno-system-headers -Woverloaded-virtual -Wno-deprecated-declarations")
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7)
set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-implicit-fallthrough")
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/5d28224e/src/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 44a39b8..f7e69ea 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -151,10 +151,10 @@ if (VALGRIND_FOUND)
option(ENABLE_VALGRIND "Use valgrind to detect run-time problems" ON)
endif (VALGRIND_FOUND)
-option(ENABLE_WARNINGS "Enable lots of compiler warnings (recommended)" ON)
-if (NOT ENABLE_WARNINGS)
- set (WARNING_FLAGS "")
-endif (NOT ENABLE_WARNINGS)
+option(ENABLE_WARNING_ERROR "Consider compiler warnings to be errors" ON)
+if (ENABLE_WARNING_ERROR)
+ set(WARNING_FLAGS "${WARNING_FLAGS} -Werror")
+endif (ENABLE_WARNING_ERROR)
if (GCC_VERSION AND NOT GCC_VERSION VERSION_LESS 5.1)
option(ENABLE_GLIBCXX_OLD_ABI "Enable old (pre GCC 5.1) C++ ABI" OFF)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[02/14] qpid-cpp git commit: NO-JIRA: Suppress a valgrind warning
about an invalid free on exit
Posted by jr...@apache.org.
NO-JIRA: Suppress a valgrind warning about an invalid free on exit
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/18665783
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/18665783
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/18665783
Branch: refs/heads/master
Commit: 186657838631cf18c4f5ad9039522fdc2385cb00
Parents: 8ceb65e
Author: Justin Ross <jr...@apache.org>
Authored: Tue Mar 13 06:44:15 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
src/tests/.valgrind.supp | 11 +++++++++++
1 file changed, 11 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/18665783/src/tests/.valgrind.supp
----------------------------------------------------------------------
diff --git a/src/tests/.valgrind.supp b/src/tests/.valgrind.supp
index d881c73..540591e 100644
--- a/src/tests/.valgrind.supp
+++ b/src/tests/.valgrind.supp
@@ -240,3 +240,14 @@
fun:_ZNSs4_Rep9_S_createEmmRKSaIcE
...
}
+
+{
+ Invalid free on exit
+ Memcheck:Free
+ fun:free
+ fun:__libc_freeres
+ fun:_vgnU_freeres
+ fun:__run_exit_handlers
+ fun:exit
+ fun:(below main)
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[05/14] qpid-cpp git commit: QPID-8128: Link to libqpid-proton-core,
not libqpid-proton; remove an obsolete way to find the proton config
Posted by jr...@apache.org.
QPID-8128: Link to libqpid-proton-core, not libqpid-proton; remove an obsolete way to find the proton config
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/b18583a6
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/b18583a6
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/b18583a6
Branch: refs/heads/master
Commit: b18583a6c05d0bb8cb9502f0823d902e17b2410e
Parents: 24c4a37
Author: Justin Ross <jr...@apache.org>
Authored: Mon Mar 12 11:32:28 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
CMakeModules/FindProton.cmake | 33 ++++++++++-----------------------
src/CMakeLists.txt | 2 +-
src/amqp.cmake | 2 +-
3 files changed, 12 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b18583a6/CMakeModules/FindProton.cmake
----------------------------------------------------------------------
diff --git a/CMakeModules/FindProton.cmake b/CMakeModules/FindProton.cmake
index 71441fe..e1cb0ed 100644
--- a/CMakeModules/FindProton.cmake
+++ b/CMakeModules/FindProton.cmake
@@ -23,20 +23,7 @@ include(FindPackageMessage)
# First try to find the Installed Proton config (Proton 0.7 and later)
find_package(Proton QUIET NO_MODULE)
if (Proton_FOUND)
- find_package_message(Proton "Found Proton: ${Proton_LIBRARIES} (found version \"${Proton_VERSION}\")" "$Proton_DIR ${Proton_LIBRARIES} $Proton_VERSION")
- return()
-endif ()
-
-# Now look for the cooky Proton config installed with some earlier
-# versions of Proton
-find_package(proton QUIET NO_MODULE)
-if (proton_FOUND)
- include("${proton_DIR}/libqpid-proton.cmake")
- set (Proton_VERSION ${PROTON_VERSION})
- set (Proton_INCLUDE_DIRS ${PROTON_INCLUDE_DIRS})
- set (Proton_LIBRARIES ${PROTON_LIBRARIES})
- set (Proton_FOUND true)
- find_package_message(Proton "Found Proton: ${Proton_LIBRARIES} (found version \"${Proton_VERSION}\")" "$Proton_DIR ${Proton_LIBRARIES} $Proton_VERSION")
+ find_package_message(Proton "Found Proton: ${Proton_Core_LIBRARIES} (found version \"${Proton_VERSION}\")" "$Proton_DIR ${Proton_Core_LIBRARIES} $Proton_VERSION")
return()
endif ()
@@ -50,16 +37,16 @@ if (PKG_CONFIG_FOUND)
endif()
if (NOT Proton_FIND_VERSION)
- pkg_check_modules(Proton ${FindPkgQUIET} libqpid-proton)
+ pkg_check_modules(Proton ${FindPkgQUIET} libqpid-proton-core)
elseif(NOT Proton_FIND_VERSION_EXACT)
- pkg_check_modules(Proton ${FindPkgQUIET} libqpid-proton>=${Proton_FIND_VERSION})
+ pkg_check_modules(Proton ${FindPkgQUIET} libqpid-proton-core>=${Proton_FIND_VERSION})
else()
- pkg_check_modules(Proton ${FindPkgQUIET} libqpid-proton=${Proton_FIND_VERSION})
+ pkg_check_modules(Proton ${FindPkgQUIET} libqpid-proton-core=${Proton_FIND_VERSION})
endif()
if (Proton_FOUND)
- find_library(Proton_LIBRARY ${Proton_LIBRARIES} HINTS ${Proton_LIBRARY_DIRS})
- set (Proton_LIBRARIES ${Proton_LIBRARY})
- find_package_message(Proton "Found Proton: ${Proton_LIBRARIES} (found version \"${Proton_VERSION}\")" "$Proton_DIR ${Proton_LIBRARIES} $Proton_VERSION")
+ find_library(Proton_LIBRARY ${Proton_Core_LIBRARIES} HINTS ${Proton_LIBRARY_DIRS})
+ set (Proton_Core_LIBRARIES ${Proton_LIBRARY})
+ find_package_message(Proton "Found Proton: ${Proton_Core_LIBRARIES} (found version \"${Proton_VERSION}\")" "$Proton_DIR ${Proton_Core_LIBRARIES} $Proton_VERSION")
return()
endif ()
endif()
@@ -68,11 +55,11 @@ endif()
# Defaule location is ${HOME}/qpid-proton
set(Proton_CHECKOUT_DIR "$ENV{HOME}/qpid-proton" CACHE PATH "Proton checkout directory")
set(Proton_BUILD_DIR_NAME "build" CACHE STRING "Proton build directory name within Proton_CHECKOUT_DIR")
-if (EXISTS ${Proton_CHECKOUT_DIR}/${Proton_BUILD_DIR_NAME}/proton-c/libqpid-proton.so)
+if (EXISTS ${Proton_CHECKOUT_DIR}/${Proton_BUILD_DIR_NAME}/proton-c/libqpid-proton-core.so)
include("${Proton_CHECKOUT_DIR}/${Proton_BUILD_DIR_NAME}/proton-c/ProtonConfig.cmake")
set (Proton_INCLUDE_DIRS "${Proton_CHECKOUT_DIR}/proton-c/include" "${Proton_CHECKOUT_DIR}/${Proton_BUILD_DIR_NAME}/proton-c/include")
- set (Proton_LIBRARIES "${Proton_CHECKOUT_DIR}/${Proton_BUILD_DIR_NAME}/proton-c/libqpid-proton.so")
- find_package_message(Proton "Found uninstalled Proton: ${Proton_LIBRARIES} (found version \"${Proton_VERSION}\")" "$ProtonX_DIR ${Proton_LIBRARIES} $Proton_VERSION")
+ set (Proton_Core_LIBRARIES "${Proton_CHECKOUT_DIR}/${Proton_BUILD_DIR_NAME}/proton-c/libqpid-proton-core.so")
+ find_package_message(Proton "Found uninstalled Proton: ${Proton_Core_LIBRARIES} (found version \"${Proton_VERSION}\")" "$ProtonX_DIR ${Proton_Core_LIBRARIES} $Proton_VERSION")
return()
endif ()
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b18583a6/src/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6ee474f..44a39b8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1001,7 +1001,7 @@ set (qpidmessaging_SOURCES
add_msvc_version (qpidmessaging library dll)
add_library (qpidmessaging SHARED ${qpidmessaging_SOURCES})
-target_link_libraries (qpidmessaging qpidtypes qpidclient qpidcommon ${Proton_LIBRARIES})
+target_link_libraries (qpidmessaging qpidtypes qpidclient qpidcommon ${Proton_Core_LIBRARIES})
set_target_properties (qpidmessaging PROPERTIES
LINK_FLAGS "${HIDE_SYMBOL_FLAGS} ${LINK_VERSION_SCRIPT_FLAG}"
COMPILE_FLAGS "${HIDE_SYMBOL_FLAGS}"
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b18583a6/src/amqp.cmake
----------------------------------------------------------------------
diff --git a/src/amqp.cmake b/src/amqp.cmake
index 0488340..fc97e22 100644
--- a/src/amqp.cmake
+++ b/src/amqp.cmake
@@ -104,7 +104,7 @@ if (BUILD_AMQP)
include_directories(${Proton_INCLUDE_DIRS})
add_library (amqp MODULE ${amqp_SOURCES})
- target_link_libraries (amqp qpidtypes qpidbroker qpidcommon ${Proton_LIBRARIES})
+ target_link_libraries (amqp qpidtypes qpidbroker qpidcommon ${Proton_Core_LIBRARIES})
set_target_properties (amqp PROPERTIES
PREFIX "")
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[09/14] qpid-cpp git commit: QPID-7089: Add a note linking to OS
packages
Posted by jr...@apache.org.
QPID-7089: Add a note linking to OS packages
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/26b6c373
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/26b6c373
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/26b6c373
Branch: refs/heads/master
Commit: 26b6c3730a3672e39fe436811f417e5b04687858
Parents: 88d08be
Author: Justin Ross <jr...@apache.org>
Authored: Mon Mar 12 15:05:50 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
INSTALL.txt | 5 +++++
1 file changed, 5 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/26b6c373/INSTALL.txt
----------------------------------------------------------------------
diff --git a/INSTALL.txt b/INSTALL.txt
index e1c4299..fddb78e 100644
--- a/INSTALL.txt
+++ b/INSTALL.txt
@@ -29,6 +29,11 @@ section 5. below and/or check the output from running cmake for any errors.
As of Qpid 0.26 cmake (versions 2.6 or 2.8) is the only way to build Qpid.
+As an alternative to building from source, you can if you like use the
+packages available for some OS distributions.
+
+ * Fedora packages: https://apps.fedoraproject.org/packages/qpid-cpp
+ * Ubuntu packages: https://launchpad.net/~qpid
2. How to Build and Install Qpid from a Source Distribution
===========================================================
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[08/14] qpid-cpp git commit: QPID-7999: Move Fedora-specific init
scripts to the fedora dir;
disable their installation, but keep them in the build output so packagers can
pick them up as needed
Posted by jr...@apache.org.
QPID-7999: Move Fedora-specific init scripts to the fedora dir; disable their installation, but keep them in the build output so packagers can pick them up as needed
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/88d08be3
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/88d08be3
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/88d08be3
Branch: refs/heads/master
Commit: 88d08be32de9b6233fcad02539b9dcf303e4b16b
Parents: 2fda113
Author: Justin Ross <jr...@apache.org>
Authored: Mon Mar 12 13:49:23 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
etc/CMakeLists.txt | 14 +--
etc/cluster.conf-example.xml.in | 90 -----------------
etc/fedora/cluster.conf-example.xml | 90 +++++++++++++++++
etc/fedora/qpidd-primary.in | 113 +++++++++++++++++++++
etc/fedora/qpidd.in | 168 +++++++++++++++++++++++++++++++
etc/qpidd-primary.in | 113 ---------------------
etc/qpidd.in | 168 -------------------------------
7 files changed, 375 insertions(+), 381 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/88d08be3/etc/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/etc/CMakeLists.txt b/etc/CMakeLists.txt
index c39257e..7c4a48b 100644
--- a/etc/CMakeLists.txt
+++ b/etc/CMakeLists.txt
@@ -18,7 +18,6 @@
#
if (UNIX)
-
# Use absolute paths as these are substituted into init scripts.
set_absolute_install_path (bindir ${QPID_INSTALL_BINDIR})
set_absolute_install_path (sysconfdir ${SYSCONF_INSTALL_DIR})
@@ -26,18 +25,13 @@ if (UNIX)
set_absolute_install_path (initdir ${QPID_INSTALL_INITDDIR})
set_absolute_install_path (confdir ${QPID_INSTALL_CONFDIR})
- configure_file(qpidd.in
- ${CMAKE_CURRENT_BINARY_DIR}/qpidd
+ configure_file(fedora/qpidd.in
+ ${CMAKE_CURRENT_BINARY_DIR}/fedora/qpidd
@ONLY)
- configure_file(qpidd-primary.in
- ${CMAKE_CURRENT_BINARY_DIR}/qpidd-primary
+ configure_file(fedora/qpidd-primary.in
+ ${CMAKE_CURRENT_BINARY_DIR}/fedora/qpidd-primary
@ONLY)
-
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qpidd ${CMAKE_CURRENT_BINARY_DIR}/qpidd-primary
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
- DESTINATION ${QPID_INSTALL_INITDDIR}
- COMPONENT ${QPID_COMPONENT_BROKER})
endif (UNIX)
install(FILES qpidc.conf
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/88d08be3/etc/cluster.conf-example.xml.in
----------------------------------------------------------------------
diff --git a/etc/cluster.conf-example.xml.in b/etc/cluster.conf-example.xml.in
deleted file mode 100644
index d6f0c08..0000000
--- a/etc/cluster.conf-example.xml.in
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- 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 is an example of a cluster.conf file to run qpidd HA under rgmanager.
-This example assumes a 3 node cluster, with nodes named node1, node2 and node3.
-
-NOTE: fencing is not shown, it should be configured in a real cluster configuration.
--->
-
-<cluster name="qpid-test" config_version="18">
- <!-- The cluster has 3 nodes. Each has a unique nodid and one vote
- for quorum. -->
- <clusternodes>
- <clusternode name="node1.example.com" nodeid="1"/>
- <clusternode name="node2.example.com" nodeid="2"/>
- <clusternode name="node3.example.com" nodeid="3"/>
- </clusternodes>
- <!-- Resouce Manager configuration. -->
- <rm>
- <!--
- There is a failoverdomain for each node containing just that node.
- This lets us stipulate that the qpidd service should always run on each node.
- -->
- <failoverdomains>
- <failoverdomain name="node1-domain" restricted="1">
- <failoverdomainnode name="node1.example.com"/>
- </failoverdomain>
- <failoverdomain name="node2-domain" restricted="1">
- <failoverdomainnode name="node2.example.com"/>
- </failoverdomain>
- <failoverdomain name="node3-domain" restricted="1">
- <failoverdomainnode name="node3.example.com"/>
- </failoverdomain>
- </failoverdomains>
-
- <resources>
- <!-- This script starts a qpidd broker acting as a backup. -->
- <script file="!!sysconfdir!!/init.d/qpidd" name="qpidd"/>
-
- <!-- This script promotes the qpidd broker on this node to primary. -->
- <script file="!!sysconfdir!!/init.d/qpidd-primary" name="qpidd-primary"/>
-
- <!-- This is a virtual IP address for broker replication traffic. -->
- <ip address="20.0.10.200" monitor_link="1"/>
-
- <!-- This is a virtual IP address on a seprate network for client traffic. -->
- <ip address="20.0.20.200" monitor_link="1"/>
- </resources>
-
- <!-- There is a qpidd service on each node, it should be restarted if it fails. -->
- <service name="node1-qpidd-service" domain="node1-domain" recovery="restart">
- <script ref="qpidd"/>
- </service>
- <service name="node2-qpidd-service" domain="node2-domain" recovery="restart">
- <script ref="qpidd"/>
- </service>
- <service name="node3-qpidd-service" domain="node3-domain" recovery="restart">
- <script ref="qpidd"/>
- </service>
-
- <!-- There should always be a single qpidd-primary service, it can run on any node. -->
- <service name="qpidd-primary-service" autostart="1" exclusive="0" recovery="relocate">
- <script ref="qpidd-primary"/>
- <!-- The primary has the IP addresses for brokers and clients to connect. -->
- <ip ref="20.0.10.200"/>
- <ip ref="20.0.20.200"/>
- </service>
- </rm>
- <fencedevices/>
- <fence_daemon clean_start="0" post_fail_delay="0" post_join_delay="3"/>
-</cluster>
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/88d08be3/etc/fedora/cluster.conf-example.xml
----------------------------------------------------------------------
diff --git a/etc/fedora/cluster.conf-example.xml b/etc/fedora/cluster.conf-example.xml
new file mode 100644
index 0000000..d6f0c08
--- /dev/null
+++ b/etc/fedora/cluster.conf-example.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0"?>
+
+<!--
+ 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 is an example of a cluster.conf file to run qpidd HA under rgmanager.
+This example assumes a 3 node cluster, with nodes named node1, node2 and node3.
+
+NOTE: fencing is not shown, it should be configured in a real cluster configuration.
+-->
+
+<cluster name="qpid-test" config_version="18">
+ <!-- The cluster has 3 nodes. Each has a unique nodid and one vote
+ for quorum. -->
+ <clusternodes>
+ <clusternode name="node1.example.com" nodeid="1"/>
+ <clusternode name="node2.example.com" nodeid="2"/>
+ <clusternode name="node3.example.com" nodeid="3"/>
+ </clusternodes>
+ <!-- Resouce Manager configuration. -->
+ <rm>
+ <!--
+ There is a failoverdomain for each node containing just that node.
+ This lets us stipulate that the qpidd service should always run on each node.
+ -->
+ <failoverdomains>
+ <failoverdomain name="node1-domain" restricted="1">
+ <failoverdomainnode name="node1.example.com"/>
+ </failoverdomain>
+ <failoverdomain name="node2-domain" restricted="1">
+ <failoverdomainnode name="node2.example.com"/>
+ </failoverdomain>
+ <failoverdomain name="node3-domain" restricted="1">
+ <failoverdomainnode name="node3.example.com"/>
+ </failoverdomain>
+ </failoverdomains>
+
+ <resources>
+ <!-- This script starts a qpidd broker acting as a backup. -->
+ <script file="!!sysconfdir!!/init.d/qpidd" name="qpidd"/>
+
+ <!-- This script promotes the qpidd broker on this node to primary. -->
+ <script file="!!sysconfdir!!/init.d/qpidd-primary" name="qpidd-primary"/>
+
+ <!-- This is a virtual IP address for broker replication traffic. -->
+ <ip address="20.0.10.200" monitor_link="1"/>
+
+ <!-- This is a virtual IP address on a seprate network for client traffic. -->
+ <ip address="20.0.20.200" monitor_link="1"/>
+ </resources>
+
+ <!-- There is a qpidd service on each node, it should be restarted if it fails. -->
+ <service name="node1-qpidd-service" domain="node1-domain" recovery="restart">
+ <script ref="qpidd"/>
+ </service>
+ <service name="node2-qpidd-service" domain="node2-domain" recovery="restart">
+ <script ref="qpidd"/>
+ </service>
+ <service name="node3-qpidd-service" domain="node3-domain" recovery="restart">
+ <script ref="qpidd"/>
+ </service>
+
+ <!-- There should always be a single qpidd-primary service, it can run on any node. -->
+ <service name="qpidd-primary-service" autostart="1" exclusive="0" recovery="relocate">
+ <script ref="qpidd-primary"/>
+ <!-- The primary has the IP addresses for brokers and clients to connect. -->
+ <ip ref="20.0.10.200"/>
+ <ip ref="20.0.20.200"/>
+ </service>
+ </rm>
+ <fencedevices/>
+ <fence_daemon clean_start="0" post_fail_delay="0" post_join_delay="3"/>
+</cluster>
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/88d08be3/etc/fedora/qpidd-primary.in
----------------------------------------------------------------------
diff --git a/etc/fedora/qpidd-primary.in b/etc/fedora/qpidd-primary.in
new file mode 100755
index 0000000..86bc76d
--- /dev/null
+++ b/etc/fedora/qpidd-primary.in
@@ -0,0 +1,113 @@
+#!/usr/bin/env 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.
+#
+#
+# qpidd Startup script for the Qpid messaging daemon.
+#
+
+### BEGIN INIT INFO
+# Provides: qpidd-primary
+# Required-Start: $qpidd
+# Required-Stop: $qpidd
+# Default-Start:
+# Default-Stop: 0 1 2 3 4 5 6
+# Short-Description: promote qpidd to cluster primary
+# Description: Qpidd can be run in an active/passive cluster. Promote a running qpidd to primary.
+### END INIT INFO
+
+# chkconfig: - 85 15
+# description: Qpidd can be run in an active/passive cluster. Promote a running qpidd to primary.
+# processname: qpidd
+
+prog=qpidd
+
+# The following variables can be overridden in @sysconfdir@/sysconfig/$prog
+QPID_INIT=@initdir@/$prog
+QPID_CONFIG=@confdir@/qpidd.conf
+QPID_HA=@bindir@/qpid-ha
+QPID_HA_OPTIONS="--config $QPID_CONFIG"
+
+# Source configuration
+test -f @sysconfdir@/sysconfig/$prog && source @sysconfdir@/sysconfig/$prog
+source /etc/rc.d/init.d/functions
+
+# Check presence of executables/scripts
+for f in $QPID_INIT $QPID_HA; do
+ test -x $f || { echo "$f not found or not executable"; exit 5; }
+done
+
+QPID_HA="$QPID_HA $QPID_HA_OPTIONS"
+
+RETVAL=0
+
+status() {
+ if $QPID_HA status --is-primary ; then
+ echo "qpidd is primary"
+ else
+ echo "qpidd is not primary"
+ return 1
+ fi
+}
+
+# Ensure no concurrent start/stop of services.
+lock() {
+ export QPID_HA_LOCK_HELD=1 # For calls to the qpidd script
+ exec 9< $QPID_INIT
+ flock 9
+}
+
+start() {
+ lock
+ $QPID_INIT start primary || return $?
+ echo -n $"Promoting to primary: "
+ err=$($QPID_HA promote --cluster-manager 2>&1)
+ RETVAL=$?
+ [ $RETVAL = 0 ] && success || { echo -n "$err: "; failure; }
+ echo
+ return $RETVAL
+}
+
+stop() {
+ $QPID_INIT stop primary
+}
+
+reload() {
+ echo 1>&2 $"$0: reload not supported"
+ return 3
+}
+
+restart() {
+ stop && start
+}
+
+# See how we were called.
+case "$1" in
+ start|stop|status|restart|reload)
+ $1
+ RETVAL=$?
+ ;;
+ force-reload)
+ restart
+ ;;
+ *)
+ echo 1>&2 $"Usage: $0 {start|stop|status|restart|force-reload}"
+ exit 2
+esac
+
+exit $RETVAL
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/88d08be3/etc/fedora/qpidd.in
----------------------------------------------------------------------
diff --git a/etc/fedora/qpidd.in b/etc/fedora/qpidd.in
new file mode 100755
index 0000000..d363308
--- /dev/null
+++ b/etc/fedora/qpidd.in
@@ -0,0 +1,168 @@
+#!/usr/bin/env 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.
+#
+#
+# qpidd Startup script for the Qpid messaging daemon.
+#
+
+### BEGIN INIT INFO
+# Provides: qpidd
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: start or stop qpidd
+# Description: Qpidd is an AMQP broker. It receives, stores, routes and forwards messages using the AMQP protcol.
+### END INIT INFO
+
+# chkconfig: - 85 15
+# description: Qpidd is an AMQP broker. It receives, stores, routes and forwards messages using the AMQP protcol.
+# processname: qpidd
+
+prog=qpidd
+lockfile=/var/lock/subsys/$prog
+pidfile=/var/run/qpidd.pid
+
+# The following variables can be overridden in @sysconfdir@/sysconfig/$prog
+QPID_INIT=@initdir@/$prog
+QPID_BIN=@sbindir@/$prog
+QPID_DATA_DIR=/var/lib/qpidd
+QPID_CONFIG=@confdir@/qpidd.conf
+QPID_HA=@bindir@/qpid-ha
+QPID_HA_OPTIONS="--config $QPID_CONFIG"
+
+# Source configuration
+test -f @sysconfdir@/sysconfig/$prog && source @sysconfdir@/sysconfig/$prog
+source /etc/rc.d/init.d/functions
+
+# Data dir: respect the config file if set.
+grep -q '^ *data-dir *=' $QPID_CONFIG || QPIDD_OPTIONS="$QPIDD_OPTIONS --data-dir=$QPID_DATA_DIR"
+
+# Check for HA configuration
+if grep -iq '^ *ha-cluster *= *\(true\|on\|1\|yes\)' $QPID_CONFIG; then
+ # HA is configured, do some extra checks.
+ test -x $QPID_HA || { echo "HA configured but $QPID_HA not found"; return 5; }
+
+ ha_ping() { $QPID_HA $QPID_HA_OPTIONS ping >/dev/null 2>&1; }
+
+ ha_allow_stop() {
+ # Primary script does not stop backup brokers and vice versa.
+ if $QPID_HA $QPID_HA_OPTIONS status --is-primary 2>&1 > /dev/null; then
+ [ "$1" = primary ] || { echo -n "stop primary broker with 'qpidd-primary stop'"; return 1; }
+ else
+ [ "$1" = primary ] && { echo -n "stop backup broker with 'qpidd stop'"; return 1; }
+ fi
+ return 0
+ }
+else
+ # No HA configuration, HA checks are no-ops.
+ ha_ping() { true; }
+ ha_allow_stop() { true; }
+fi
+
+# Check presence of executables/scripts
+for f in $QPID_BIN; do
+ test -x $f || { echo "$f not found or not executable"; exit 5; }
+done
+
+RETVAL=0
+
+# Ensure user has sufficient permissions
+runuser -s /bin/sh qpidd -c "echo x > /dev/null" 2> /dev/null || RETVAL=4
+if [ $RETVAL = 4 ]; then
+ echo "user had insufficient privilege";
+ exit $RETVAL
+fi
+
+do_status() {
+ # Check PID file and ping for liveness
+ MESSAGE=$(status -p $pidfile $prog) && {
+ ha_ping || return 1
+ }
+ RC=$?
+ echo $MESSAGE
+ return $RC
+}
+
+FLOCK_FD=9
+# Ensure no concurrent start/stop of services.
+lock() {
+ [ "$QPID_HA_LOCK_HELD" ] || { # Held by caller
+ exec 9< $QPID_INIT
+ flock $FLOCK_FD
+ }
+}
+
+start() {
+ lock
+ echo -n $"Starting Qpid AMQP daemon: "
+ touch $pidfile
+ chown qpidd.qpidd $pidfile
+ [ -x /sbin/restorecon ] && /sbin/restorecon $pidfile
+ daemon --pidfile $pidfile --check $prog --user qpidd $QPID_BIN --config $QPID_CONFIG --daemon $QPIDD_OPTIONS --close-fd $FLOCK_FD --pidfile $pidfile
+ RETVAL=$?
+ echo
+ [ $RETVAL = 0 ] && touch $lockfile
+ return $RETVAL
+}
+
+stop() {
+ lock
+ if ha_allow_stop $1; then
+ echo -n $"Stopping Qpid AMQP daemon: "
+ killproc -p ${pidfile} $prog
+ RETVAL=$?
+ [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
+ fi
+ [ "$RETVAL" = 0 ] && success
+ echo
+ return $RETVAL
+}
+
+
+reload() {
+ echo 1>&2 $"$0: reload not supported"
+ return 3
+}
+
+restart() {
+ stop && start
+}
+
+# See how we were called.
+case "$1" in
+ start|stop|restart|reload)
+ $1 $2
+ ;;
+ status)
+ do_status
+ RETVAL=$?
+ ;;
+ force-reload)
+ restart
+ ;;
+ try-restart|condrestart)
+ [ -e $lockfile ] && restart || :
+ ;;
+ *)
+ echo 1>&2 $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|force-reload}"
+ exit 2
+esac
+
+exit $RETVAL
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/88d08be3/etc/qpidd-primary.in
----------------------------------------------------------------------
diff --git a/etc/qpidd-primary.in b/etc/qpidd-primary.in
deleted file mode 100755
index 86bc76d..0000000
--- a/etc/qpidd-primary.in
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env 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.
-#
-#
-# qpidd Startup script for the Qpid messaging daemon.
-#
-
-### BEGIN INIT INFO
-# Provides: qpidd-primary
-# Required-Start: $qpidd
-# Required-Stop: $qpidd
-# Default-Start:
-# Default-Stop: 0 1 2 3 4 5 6
-# Short-Description: promote qpidd to cluster primary
-# Description: Qpidd can be run in an active/passive cluster. Promote a running qpidd to primary.
-### END INIT INFO
-
-# chkconfig: - 85 15
-# description: Qpidd can be run in an active/passive cluster. Promote a running qpidd to primary.
-# processname: qpidd
-
-prog=qpidd
-
-# The following variables can be overridden in @sysconfdir@/sysconfig/$prog
-QPID_INIT=@initdir@/$prog
-QPID_CONFIG=@confdir@/qpidd.conf
-QPID_HA=@bindir@/qpid-ha
-QPID_HA_OPTIONS="--config $QPID_CONFIG"
-
-# Source configuration
-test -f @sysconfdir@/sysconfig/$prog && source @sysconfdir@/sysconfig/$prog
-source /etc/rc.d/init.d/functions
-
-# Check presence of executables/scripts
-for f in $QPID_INIT $QPID_HA; do
- test -x $f || { echo "$f not found or not executable"; exit 5; }
-done
-
-QPID_HA="$QPID_HA $QPID_HA_OPTIONS"
-
-RETVAL=0
-
-status() {
- if $QPID_HA status --is-primary ; then
- echo "qpidd is primary"
- else
- echo "qpidd is not primary"
- return 1
- fi
-}
-
-# Ensure no concurrent start/stop of services.
-lock() {
- export QPID_HA_LOCK_HELD=1 # For calls to the qpidd script
- exec 9< $QPID_INIT
- flock 9
-}
-
-start() {
- lock
- $QPID_INIT start primary || return $?
- echo -n $"Promoting to primary: "
- err=$($QPID_HA promote --cluster-manager 2>&1)
- RETVAL=$?
- [ $RETVAL = 0 ] && success || { echo -n "$err: "; failure; }
- echo
- return $RETVAL
-}
-
-stop() {
- $QPID_INIT stop primary
-}
-
-reload() {
- echo 1>&2 $"$0: reload not supported"
- return 3
-}
-
-restart() {
- stop && start
-}
-
-# See how we were called.
-case "$1" in
- start|stop|status|restart|reload)
- $1
- RETVAL=$?
- ;;
- force-reload)
- restart
- ;;
- *)
- echo 1>&2 $"Usage: $0 {start|stop|status|restart|force-reload}"
- exit 2
-esac
-
-exit $RETVAL
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/88d08be3/etc/qpidd.in
----------------------------------------------------------------------
diff --git a/etc/qpidd.in b/etc/qpidd.in
deleted file mode 100755
index d363308..0000000
--- a/etc/qpidd.in
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/usr/bin/env 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.
-#
-#
-# qpidd Startup script for the Qpid messaging daemon.
-#
-
-### BEGIN INIT INFO
-# Provides: qpidd
-# Required-Start: $local_fs
-# Required-Stop: $local_fs
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: start or stop qpidd
-# Description: Qpidd is an AMQP broker. It receives, stores, routes and forwards messages using the AMQP protcol.
-### END INIT INFO
-
-# chkconfig: - 85 15
-# description: Qpidd is an AMQP broker. It receives, stores, routes and forwards messages using the AMQP protcol.
-# processname: qpidd
-
-prog=qpidd
-lockfile=/var/lock/subsys/$prog
-pidfile=/var/run/qpidd.pid
-
-# The following variables can be overridden in @sysconfdir@/sysconfig/$prog
-QPID_INIT=@initdir@/$prog
-QPID_BIN=@sbindir@/$prog
-QPID_DATA_DIR=/var/lib/qpidd
-QPID_CONFIG=@confdir@/qpidd.conf
-QPID_HA=@bindir@/qpid-ha
-QPID_HA_OPTIONS="--config $QPID_CONFIG"
-
-# Source configuration
-test -f @sysconfdir@/sysconfig/$prog && source @sysconfdir@/sysconfig/$prog
-source /etc/rc.d/init.d/functions
-
-# Data dir: respect the config file if set.
-grep -q '^ *data-dir *=' $QPID_CONFIG || QPIDD_OPTIONS="$QPIDD_OPTIONS --data-dir=$QPID_DATA_DIR"
-
-# Check for HA configuration
-if grep -iq '^ *ha-cluster *= *\(true\|on\|1\|yes\)' $QPID_CONFIG; then
- # HA is configured, do some extra checks.
- test -x $QPID_HA || { echo "HA configured but $QPID_HA not found"; return 5; }
-
- ha_ping() { $QPID_HA $QPID_HA_OPTIONS ping >/dev/null 2>&1; }
-
- ha_allow_stop() {
- # Primary script does not stop backup brokers and vice versa.
- if $QPID_HA $QPID_HA_OPTIONS status --is-primary 2>&1 > /dev/null; then
- [ "$1" = primary ] || { echo -n "stop primary broker with 'qpidd-primary stop'"; return 1; }
- else
- [ "$1" = primary ] && { echo -n "stop backup broker with 'qpidd stop'"; return 1; }
- fi
- return 0
- }
-else
- # No HA configuration, HA checks are no-ops.
- ha_ping() { true; }
- ha_allow_stop() { true; }
-fi
-
-# Check presence of executables/scripts
-for f in $QPID_BIN; do
- test -x $f || { echo "$f not found or not executable"; exit 5; }
-done
-
-RETVAL=0
-
-# Ensure user has sufficient permissions
-runuser -s /bin/sh qpidd -c "echo x > /dev/null" 2> /dev/null || RETVAL=4
-if [ $RETVAL = 4 ]; then
- echo "user had insufficient privilege";
- exit $RETVAL
-fi
-
-do_status() {
- # Check PID file and ping for liveness
- MESSAGE=$(status -p $pidfile $prog) && {
- ha_ping || return 1
- }
- RC=$?
- echo $MESSAGE
- return $RC
-}
-
-FLOCK_FD=9
-# Ensure no concurrent start/stop of services.
-lock() {
- [ "$QPID_HA_LOCK_HELD" ] || { # Held by caller
- exec 9< $QPID_INIT
- flock $FLOCK_FD
- }
-}
-
-start() {
- lock
- echo -n $"Starting Qpid AMQP daemon: "
- touch $pidfile
- chown qpidd.qpidd $pidfile
- [ -x /sbin/restorecon ] && /sbin/restorecon $pidfile
- daemon --pidfile $pidfile --check $prog --user qpidd $QPID_BIN --config $QPID_CONFIG --daemon $QPIDD_OPTIONS --close-fd $FLOCK_FD --pidfile $pidfile
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && touch $lockfile
- return $RETVAL
-}
-
-stop() {
- lock
- if ha_allow_stop $1; then
- echo -n $"Stopping Qpid AMQP daemon: "
- killproc -p ${pidfile} $prog
- RETVAL=$?
- [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
- fi
- [ "$RETVAL" = 0 ] && success
- echo
- return $RETVAL
-}
-
-
-reload() {
- echo 1>&2 $"$0: reload not supported"
- return 3
-}
-
-restart() {
- stop && start
-}
-
-# See how we were called.
-case "$1" in
- start|stop|restart|reload)
- $1 $2
- ;;
- status)
- do_status
- RETVAL=$?
- ;;
- force-reload)
- restart
- ;;
- try-restart|condrestart)
- [ -e $lockfile ] && restart || :
- ;;
- *)
- echo 1>&2 $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|force-reload}"
- exit 2
-esac
-
-exit $RETVAL
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[10/14] qpid-cpp git commit: QPID-8128: Remove the Proton version
warning and raise the minimum version
Posted by jr...@apache.org.
QPID-8128: Remove the Proton version warning and raise the minimum version
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/3b6f718d
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/3b6f718d
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/3b6f718d
Branch: refs/heads/master
Commit: 3b6f718deb0d71e194e9ccdd276caea854c97d5d
Parents: 5d28224
Author: Justin Ross <jr...@apache.org>
Authored: Mon Mar 12 16:52:42 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
src/amqp.cmake | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/3b6f718d/src/amqp.cmake
----------------------------------------------------------------------
diff --git a/src/amqp.cmake b/src/amqp.cmake
index fc97e22..906119c 100644
--- a/src/amqp.cmake
+++ b/src/amqp.cmake
@@ -19,14 +19,11 @@
# Optional AMQP1.0 support. Requires proton toolkit.
-find_package(Proton 0.7)
+find_package(Proton 0.16)
set (amqp_default ${amqp_force})
-set (maximum_version 0.18.1)
+
if (Proton_FOUND)
- if (Proton_VERSION VERSION_GREATER ${maximum_version})
- message(WARNING "Qpid proton ${Proton_VERSION} is not a tested version and might not be compatible, ${maximum_version} is highest tested; build may not work")
- endif (Proton_VERSION VERSION_GREATER ${maximum_version})
message(STATUS "Qpid proton found, amqp 1.0 support enabled")
set (amqp_default ON)
if (Proton_VERSION VERSION_GREATER 0.7)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[14/14] qpid-cpp git commit: QPID-7499: Fix a cmake syntax error
Posted by jr...@apache.org.
QPID-7499: Fix a cmake syntax error
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/58c0d363
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/58c0d363
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/58c0d363
Branch: refs/heads/master
Commit: 58c0d36310b4c23a009cdbc7ef7a621976e351a2
Parents: 646c3b1
Author: Justin Ross <jr...@apache.org>
Authored: Wed Mar 14 13:28:08 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 13:28:08 2018 -0700
----------------------------------------------------------------------
src/tests/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/58c0d363/src/tests/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 4122d9c..9387f41 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -124,7 +124,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/check_dependencies.py.in
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/env.py.in
${CMAKE_CURRENT_BINARY_DIR}/env.py @ONLY)
-file(GLOB_RECURSE copied_files "*.ps1", "*.py" "*.sh" "*.xml" "run_*")
+file(GLOB_RECURSE copied_files "*.ps1" "*.py" "*.sh" "*.xml" "run_*")
foreach (copied_file ${copied_files})
file (RELATIVE_PATH file_name ${CMAKE_CURRENT_SOURCE_DIR} ${copied_file})
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[06/14] qpid-cpp git commit: QPID-8072,
QPID-8129: Remove the long deprecated Ruby and Python bindings to QMF2
Posted by jr...@apache.org.
QPID-8072, QPID-8129: Remove the long deprecated Ruby and Python bindings to QMF2
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/b569b4d6
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/b569b4d6
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/b569b4d6
Branch: refs/heads/master
Commit: b569b4d6447408c451fc3167af25c41efce81fd1
Parents: b18583a
Author: Justin Ross <jr...@apache.org>
Authored: Mon Mar 12 12:41:15 2018 -0700
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
bindings/CMakeLists.txt | 2 -
bindings/qmf2/examples/python/agent.py | 196 -----
bindings/qmf2/examples/python/find_agents.py | 57 --
bindings/qmf2/examples/ruby/agent_external.rb | 84 --
bindings/qmf2/examples/ruby/agent_internal.rb | 77 --
bindings/qmf2/examples/ruby/find_agents.rb | 63 --
bindings/qmf2/python/CMakeLists.txt | 74 --
bindings/qmf2/python/cqmf2.i | 45 -
bindings/qmf2/python/qmf2.py | 937 ---------------------
bindings/qmf2/ruby/CMakeLists.txt | 50 --
bindings/qmf2/ruby/qmf2.rb | 857 -------------------
bindings/qmf2/ruby/ruby.i | 37 -
12 files changed, 2479 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/bindings/CMakeLists.txt b/bindings/CMakeLists.txt
index 0195eb2..2152d1d 100644
--- a/bindings/CMakeLists.txt
+++ b/bindings/CMakeLists.txt
@@ -118,7 +118,6 @@ if (SWIG_FOUND)
OUTPUT_STRIP_TRAILING_WHITESPACE)
add_subdirectory(qpid/python)
- add_subdirectory(qmf2/python)
endif (BUILD_BINDING_PYTHON)
if (BUILD_BINDING_RUBY)
@@ -131,7 +130,6 @@ if (SWIG_FOUND)
endif (NOT RUBY_PFX_ARCH_DIR)
add_subdirectory(qpid/ruby)
- add_subdirectory(qmf2/ruby)
endif (BUILD_BINDING_RUBY)
if (BUILD_BINDING_PERL)
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/examples/python/agent.py
----------------------------------------------------------------------
diff --git a/bindings/qmf2/examples/python/agent.py b/bindings/qmf2/examples/python/agent.py
deleted file mode 100755
index a9f1a14..0000000
--- a/bindings/qmf2/examples/python/agent.py
+++ /dev/null
@@ -1,196 +0,0 @@
-#!/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 qpid_messaging
-from qmf2 import *
-
-
-class ExampleAgent(AgentHandler):
- """
- This example agent is implemented as a single class that inherits AgentHandler.
- It does not use a separate thread since once set up, it is driven strictly by
- incoming method calls.
- """
-
- def __init__(self, url):
- ##
- ## Create and open a messaging connection to a broker.
- ##
- self.connection = qpid_messaging.Connection(url, "{reconnect:True}")
- self.session = None
- self.connection.open()
-
- ##
- ## Create, configure, and open a QMFv2 agent session using the connection.
- ##
- self.session = AgentSession(self.connection, "{interval:30}")
- self.session.setVendor('profitron.com')
- self.session.setProduct('blastinator')
- self.session.setAttribute('attr1', 1000)
- self.session.open()
-
- ##
- ## Initialize the parent class.
- ##
- AgentHandler.__init__(self, self.session)
-
-
- def shutdown(self):
- """
- Clean up the session and connection.
- """
- if self.session:
- self.session.close()
- self.connection.close()
-
-
- def method(self, handle, methodName, args, subtypes, addr, userId):
- """
- Handle incoming method calls.
- """
- if addr == self.controlAddr:
- self.control.methodCount += 1
-
- try:
- if methodName == "stop":
- self.session.methodSuccess(handle)
- self.cancel()
-
- elif methodName == "echo":
- handle.addReturnArgument("sequence", args["sequence"])
- handle.addReturnArgument("map", args["map"])
- self.session.methodSuccess(handle)
-
- elif methodName == "event":
- ev = Data(self.sch_event)
- ev.text = args['text']
- self.session.raiseEvent(ev, args['severity'])
- self.session.methodSuccess(handle)
-
- elif methodName == "fail":
- if args['useString']:
- self.session.raiseException(handle, args['stringVal'])
- else:
- ex = Data(self.sch_exception)
- ex.whatHappened = "It Failed"
- ex.howBad = 75
- ex.details = args['details']
- self.session.raiseException(handle, ex)
-
- elif methodName == "create_child":
- name = args['name']
- child = Data(self.sch_child)
- child.name = name
- addr = self.session.addData(child, name)
- handle.addReturnArgument("childAddr", addr.asMap())
- self.session.methodSuccess(handle)
- except BaseException, e:
- self.session.raiseException(handle, "%r" % e)
-
-
- def setupSchema(self):
- """
- Create and register the schema for this agent.
- """
- package = "com.profitron.bntor"
-
- ##
- ## Declare a schema for a structured exception that can be used in failed
- ## method invocations.
- ##
- self.sch_exception = Schema(SCHEMA_TYPE_DATA, package, "exception")
- self.sch_exception.addProperty(SchemaProperty("whatHappened", SCHEMA_DATA_STRING))
- self.sch_exception.addProperty(SchemaProperty("howBad", SCHEMA_DATA_INT))
- self.sch_exception.addProperty(SchemaProperty("details", SCHEMA_DATA_MAP))
-
- ##
- ## Declare a control object to test methods against.
- ##
- self.sch_control = Schema(SCHEMA_TYPE_DATA, package, "control")
- self.sch_control.addProperty(SchemaProperty("state", SCHEMA_DATA_STRING))
- self.sch_control.addProperty(SchemaProperty("methodCount", SCHEMA_DATA_INT))
-
- stopMethod = SchemaMethod("stop", desc="Stop Agent")
- stopMethod.addArgument(SchemaProperty("message", SCHEMA_DATA_STRING, direction=DIR_IN))
- self.sch_control.addMethod(stopMethod)
-
- echoMethod = SchemaMethod("echo", desc="Echo Arguments")
- echoMethod.addArgument(SchemaProperty("sequence", SCHEMA_DATA_INT, direction=DIR_IN_OUT))
- echoMethod.addArgument(SchemaProperty("map", SCHEMA_DATA_MAP, direction=DIR_IN_OUT))
- self.sch_control.addMethod(echoMethod)
-
- eventMethod = SchemaMethod("event", desc="Raise an Event")
- eventMethod.addArgument(SchemaProperty("text", SCHEMA_DATA_STRING, direction=DIR_IN))
- eventMethod.addArgument(SchemaProperty("severity", SCHEMA_DATA_INT, direction=DIR_IN))
- self.sch_control.addMethod(eventMethod)
-
- failMethod = SchemaMethod("fail", desc="Expected to Fail")
- failMethod.addArgument(SchemaProperty("useString", SCHEMA_DATA_BOOL, direction=DIR_IN))
- failMethod.addArgument(SchemaProperty("stringVal", SCHEMA_DATA_STRING, direction=DIR_IN))
- failMethod.addArgument(SchemaProperty("details", SCHEMA_DATA_MAP, direction=DIR_IN))
- self.sch_control.addMethod(failMethod)
-
- createMethod = SchemaMethod("create_child", desc="Create Child Object")
- createMethod.addArgument(SchemaProperty("name", SCHEMA_DATA_STRING, direction=DIR_IN))
- createMethod.addArgument(SchemaProperty("childAddr", SCHEMA_DATA_MAP, direction=DIR_OUT))
- self.sch_control.addMethod(createMethod)
-
- ##
- ## Declare a child object
- ##
- self.sch_child = Schema(SCHEMA_TYPE_DATA, package, "child")
- self.sch_child.addProperty(SchemaProperty("name", SCHEMA_DATA_STRING))
-
- ##
- ## Declare the event class
- ##
- self.sch_event = Schema(SCHEMA_TYPE_EVENT, package, "event")
- self.sch_event.addProperty(SchemaProperty("text", SCHEMA_DATA_STRING))
-
- ##
- ## Register our schemata with the agent session.
- ##
- self.session.registerSchema(self.sch_exception)
- self.session.registerSchema(self.sch_control)
- self.session.registerSchema(self.sch_child)
- self.session.registerSchema(self.sch_event)
-
-
- def populateData(self):
- """
- Create a control object and give it to the agent session to manage.
- """
- self.control = Data(self.sch_control)
- self.control.state = "OPERATIONAL"
- self.control.methodCount = 0
- self.controlAddr = self.session.addData(self.control, "singleton")
-
-
-try:
- agent = ExampleAgent("localhost")
- agent.setupSchema()
- agent.populateData()
- agent.run() # Use agent.start() to launch the agent in a separate thread
- agent.shutdown()
-except Exception, e:
- print "Exception Caught:", e
-
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/examples/python/find_agents.py
----------------------------------------------------------------------
diff --git a/bindings/qmf2/examples/python/find_agents.py b/bindings/qmf2/examples/python/find_agents.py
deleted file mode 100644
index 852f23f..0000000
--- a/bindings/qmf2/examples/python/find_agents.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# 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 qpid_messaging
-import qmf2
-
-class FindAgents(qmf2.ConsoleHandler):
-
- def __init__(self, session):
- qmf2.ConsoleHandler.__init__(self, session)
-
- def agentAdded(self, agent):
- print "Agent Added: %r" % agent
-
- def agentDeleted(self, agent, reason):
- print "Agent Deleted: %r reason: %s" % (agent, reason)
-
- def agentRestarted(self, agent):
- print "Agent Restarted: %r" % agent
-
- def agentSchemaUpdated(self, agent):
- print "Agent Schema Updated: %r" % agent
-
- def eventRaised(self, agent, data, timestamp, severity):
- print "Event: data=%r time=%d sev=%d" % (data.getProperties(), timestamp, severity)
-
-
-
-url = "localhost"
-options = ""
-
-connection = qpid_messaging.Connection(url, options)
-connection.open()
-
-session = qmf2.ConsoleSession(connection)
-session.open()
-session.setAgentFilter("[]")
-
-main = FindAgents(session)
-main.run()
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/examples/ruby/agent_external.rb
----------------------------------------------------------------------
diff --git a/bindings/qmf2/examples/ruby/agent_external.rb b/bindings/qmf2/examples/ruby/agent_external.rb
deleted file mode 100644
index 7517193..0000000
--- a/bindings/qmf2/examples/ruby/agent_external.rb
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-# 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 'cqpid'
-require 'qmf2'
-
-class MyAgent < Qmf2::AgentHandler
-
- def initialize(session, data)
- super(session)
- @data = data
- end
-
- def authorize_query(query, user_id)
- puts "Authorizing #{user_id}"
- return true
- end
-
- def get_query(context, query, user_id)
- puts "Get Query"
- context.response(@data)
- context.complete
- end
-
- def method_call(context, method_name, data_addr, args, user_id)
- puts "Method: #{method_name}"
- context._success
- end
-
-end
-
-
-class Program
-
- def initialize(url)
- @url = url
- @sess_options = "{allow-queries:False, external:True}"
- end
-
- def setup_schema(agent)
- @cls_control = Qmf2::Schema.new(Qmf2::SCHEMA_TYPE_DATA, "org.package", "control")
- @cls_control.add_property(Qmf2::SchemaProperty.new("state", Qmf2::SCHEMA_DATA_STRING))
- agent.register_schema(@cls_control)
- end
-
- def run
- connection = Cqpid::Connection.new(@url)
- connection.open
-
- session = Qmf2::AgentSession.new(connection, @sess_options)
- session.set_vendor("package.org")
- session.set_product("external_agent")
- setup_schema(session)
- session.open
-
- @control = Qmf2::Data.new(@cls_control)
- @control.state = "OPERATIONAL-EXTERNAL"
- @control.set_addr(Qmf2::DataAddr.new("singleton"))
-
- main = MyAgent.new(session, @control)
- main.run
- end
-end
-
-prog = Program.new("localhost")
-prog.run
-
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/examples/ruby/agent_internal.rb
----------------------------------------------------------------------
diff --git a/bindings/qmf2/examples/ruby/agent_internal.rb b/bindings/qmf2/examples/ruby/agent_internal.rb
deleted file mode 100644
index fc49a88..0000000
--- a/bindings/qmf2/examples/ruby/agent_internal.rb
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# 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 'cqpid'
-require 'qmf2'
-
-class MyAgent < Qmf2::AgentHandler
-
- def initialize(session)
- super(session)
- end
-
- def authorize_query(query, user_id)
- puts "Authorizing #{user_id}"
- return true
- end
-
- def method_call(context, method_name, data_addr, args, user_id)
- puts "Method: #{method_name}"
- context._success
- end
-
-end
-
-
-class Program
-
- def initialize(url)
- @url = url
- @sess_options = "{allow-queries:False}"
- end
-
- def setup_schema(agent)
- @cls_control = Qmf2::Schema.new(Qmf2::SCHEMA_TYPE_DATA, "org.package", "control")
- @cls_control.add_property(Qmf2::SchemaProperty.new("state", Qmf2::SCHEMA_DATA_STRING))
- agent.register_schema(@cls_control)
- end
-
- def run
- connection = Cqpid::Connection.new(@url)
- connection.open
-
- session = Qmf2::AgentSession.new(connection, @sess_options)
- session.set_vendor("package.org")
- session.set_product("internal_agent")
- setup_schema(session)
- session.open
-
- control = Qmf2::Data.new(@cls_control)
- control.state = "OPERATIONAL"
- session.add_data(control)
-
- main = MyAgent.new(session)
- main.run
- end
-end
-
-prog = Program.new("localhost")
-prog.run
-
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/examples/ruby/find_agents.rb
----------------------------------------------------------------------
diff --git a/bindings/qmf2/examples/ruby/find_agents.rb b/bindings/qmf2/examples/ruby/find_agents.rb
deleted file mode 100644
index 41de7e5..0000000
--- a/bindings/qmf2/examples/ruby/find_agents.rb
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# 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 'cqpid'
-require 'qmf2'
-
-class FindAgents < Qmf2::ConsoleHandler
-
- def initialize(session)
- super(session)
- end
-
- def agent_added(agent)
- puts "Agent Added: #{agent.name}"
- end
-
- def agent_deleted(agent, reason)
- puts "Agent Deleted: #{agent.to_s} reason: #{reason}"
- end
-
- def agent_restarted(agent)
- puts "Agent Restarted: #{agent.to_s} epoch: #{agent.epoch}"
- end
-
- def agent_schema_updated(agent)
- puts "Agent with new Schemata: #{agent.to_s}"
- end
-
- def event_raised(agent, data, timestamp, severity)
- puts "Event Raised time=#{timestamp} sev=#{severity} data=#{data.properties}"
- end
-end
-
-
-url = "localhost"
-options = ""
-
-connection = Cqpid::Connection.new(url, options)
-connection.open
-
-session = Qmf2::ConsoleSession.new(connection)
-session.open
-session.set_agent_filter("[]")
-
-main = FindAgents.new(session)
-main.run
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/python/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/bindings/qmf2/python/CMakeLists.txt b/bindings/qmf2/python/CMakeLists.txt
deleted file mode 100644
index 2ab1d7d..0000000
--- a/bindings/qmf2/python/CMakeLists.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-# 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.
-#
-
-##------------------------------------------------------
-## Use Swig to generate a literal binding to the C++ API
-##------------------------------------------------------
-
-# NB For python the SWIG module name must have the same name as the input .i file for CMake to generate the
-# correct dependencies
-
-set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cqmf2.i PROPERTIES
- CPLUSPLUS ON
- SWIG_FLAGS "-I${qpid-cpp_SOURCE_DIR}/include;-I${qpid-cpp_SOURCE_DIR}/bindings")
-
-list(APPEND SWIG_MODULE_cqmf2_EXTRA_DEPS
- ${CMAKE_SOURCE_DIR}/include/qmf/qmf2.i
- ${CMAKE_SOURCE_DIR}/include/qpid/swig_python_typemaps.i
-)
-swig_add_library(cqmf2 LANGUAGE python SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cqmf2.i)
-swig_link_libraries(cqmf2 qmf2 qpidmessaging qpidtypes ${PYTHON_LIBRARIES})
-
-set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "${NOSTRICT_ALIASING}")
-include_directories(${PYTHON_INCLUDE_PATH}
- ${qpid-cpp_SOURCE_DIR}/include
- ${qpid-cpp_SOURCE_DIR}/bindings)
-
-# Move source into binary dir so compiled .pyc,pyo files will be in binary dir.
-# NOTE: not using the file(COPY) command as it is not available in cmake 2.6
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/qmf2.py" "${CMAKE_CURRENT_BINARY_DIR}" COPYONLY)
-
-# Python compile the modules
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile cqmf2.py
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile cqmf2.py
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile qmf2.py
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
-install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile qmf2.py
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
-##------------------------------------
-## Install the complete Python binding
-##------------------------------------
-install(FILES
- ${CMAKE_CURRENT_BINARY_DIR}/cqmf2.py
- ${CMAKE_CURRENT_BINARY_DIR}/cqmf2.pyc
- ${CMAKE_CURRENT_BINARY_DIR}/cqmf2.pyo
- ${CMAKE_CURRENT_SOURCE_DIR}/qmf2.py
- ${CMAKE_CURRENT_BINARY_DIR}/qmf2.pyc
- ${CMAKE_CURRENT_BINARY_DIR}/qmf2.pyo
- DESTINATION ${PYTHON_SITEARCH_PACKAGES}
- COMPONENT ${QPID_COMPONENT_CLIENT}
- )
-
-install(TARGETS ${SWIG_MODULE_cqmf2_REAL_NAME}
- DESTINATION ${PYTHON_SITEARCH_PACKAGES}
- COMPONENT ${QPID_COMPONENT_CLIENT}
- )
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/python/cqmf2.i
----------------------------------------------------------------------
diff --git a/bindings/qmf2/python/cqmf2.i b/bindings/qmf2/python/cqmf2.i
deleted file mode 100644
index b8d25b7..0000000
--- a/bindings/qmf2/python/cqmf2.i
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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 cqmf2
-%include "std_string.i"
-%include "qpid/swig_python_typemaps.i"
-
-/* Define the general-purpose exception handling */
-%exception {
- bool failed = true;
- std::string error;
- Py_BEGIN_ALLOW_THREADS;
- try {
- $action
- failed = false;
- } catch (qpid::types::Exception& ex) {
- error = ex.what();
- }
- Py_END_ALLOW_THREADS;
- if (failed) {
- if (!error.empty()) {
- PyErr_SetString(PyExc_RuntimeError, error.c_str());
- }
- SWIG_fail;
- }
-}
-
-%include "qmf/qmf2.i"
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/python/qmf2.py
----------------------------------------------------------------------
diff --git a/bindings/qmf2/python/qmf2.py b/bindings/qmf2/python/qmf2.py
deleted file mode 100644
index 601e68f..0000000
--- a/bindings/qmf2/python/qmf2.py
+++ /dev/null
@@ -1,937 +0,0 @@
-#
-# 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 warnings
-warnings.warn("The qmf2 module is deprecated. It will be removed in the future.",
- Warning, stacklevel=2)
-
-import cqmf2
-import qpid_messaging
-from threading import Thread
-import time
-
-#===================================================================================================
-# CONSTANTS
-#===================================================================================================
-SCHEMA_TYPE_DATA = cqmf2.SCHEMA_TYPE_DATA
-SCHEMA_TYPE_EVENT = cqmf2.SCHEMA_TYPE_EVENT
-
-SCHEMA_DATA_VOID = cqmf2.SCHEMA_DATA_VOID
-SCHEMA_DATA_BOOL = cqmf2.SCHEMA_DATA_BOOL
-SCHEMA_DATA_INT = cqmf2.SCHEMA_DATA_INT
-SCHEMA_DATA_FLOAT = cqmf2.SCHEMA_DATA_FLOAT
-SCHEMA_DATA_STRING = cqmf2.SCHEMA_DATA_STRING
-SCHEMA_DATA_MAP = cqmf2.SCHEMA_DATA_MAP
-SCHEMA_DATA_LIST = cqmf2.SCHEMA_DATA_LIST
-SCHEMA_DATA_UUID = cqmf2.SCHEMA_DATA_UUID
-
-ACCESS_READ_CREATE = cqmf2.ACCESS_READ_CREATE
-ACCESS_READ_WRITE = cqmf2.ACCESS_READ_WRITE
-ACCESS_READ_ONLY = cqmf2.ACCESS_READ_ONLY
-
-DIR_IN = cqmf2.DIR_IN
-DIR_OUT = cqmf2.DIR_OUT
-DIR_IN_OUT = cqmf2.DIR_IN_OUT
-
-SEV_EMERG = cqmf2.SEV_EMERG
-SEV_ALERT = cqmf2.SEV_ALERT
-SEV_CRIT = cqmf2.SEV_CRIT
-SEV_ERROR = cqmf2.SEV_ERROR
-SEV_WARN = cqmf2.SEV_WARN
-SEV_NOTICE = cqmf2.SEV_NOTICE
-SEV_INFORM = cqmf2.SEV_INFORM
-SEV_DEBUG = cqmf2.SEV_DEBUG
-
-QUERY_OBJECT = cqmf2.QUERY_OBJECT
-QUERY_OBJECT_ID = cqmf2.QUERY_OBJECT_ID
-QUERY_SCHEMA = cqmf2.QUERY_SCHEMA
-QUERY_SCHEMA_ID = cqmf2.QUERY_SCHEMA_ID
-
-
-#===================================================================================================
-# EXCEPTIONS
-#===================================================================================================
-class QmfAgentException(Exception):
- """
- This exception class represents an exception that was raised by a remote agent and propagated
- to a console via QMFv2.
- """
- def __init__(self, data):
- self.value = data
-
- def __str__(self):
- return "From Remote Agent: %r" % self.value.getProperties()
-
-
-#===================================================================================================
-# AGENT HANDLER
-#===================================================================================================
-class AgentHandler(Thread):
- """
- Agent applications can create a subclass of AgentHandler to handle asynchronous events (like
- incoming method calls) that occur on the agent session. AgentHandler contains a thread on which
- the handler callbacks are invoked.
-
- There are two ways to operate the handler: Cause it to start its own thread by calling
- start() and later stop it by calling cancel(); and directly calling run() to operate it on the
- main thread.
-
- Example Usage:
-
- class MyAgentHandler(qmf2.AgentHandler):
- def __init__(self, agentSession):
- qmf2.AgentHandler.__init__(self, agentSession)
- def method(self, handle, methodName, args, subtypes, addr, userId):
- ...method handling code goes here...
- For success, add output arguments:
- handle.addReturnArgument("argname", argvalue)
- ...
- self.agent.methodSuccess(handle)
- For failure, raise an exception:
- self.agent.raiseException(handle, "error text")
- Or, if you have created a schema for a structured exception:
- ex = qmf2.Data(exceptionSchema)
- ex.whatHappened = "it failed"
- ex.howBad = 84
- ex.detailMap = {}
- ...
- self.agent.raiseException(handle, ex)
- """
-
- def __init__(self, agentSession):
- Thread.__init__(self)
- self.__agent = agentSession
- self.__running = True
-
- def cancel(self):
- """
- Stop the handler thread.
- """
- self.__running = None
-
- def run(self):
- event = cqmf2.AgentEvent()
- while self.__running:
- valid = self.__agent._impl.nextEvent(event, qpid_messaging.Duration.SECOND)
- if valid and self.__running:
- if event.getType() == cqmf2.AGENT_METHOD:
- self.method(event, event.getMethodName(), event.getArguments(), event.getArgumentSubtypes(),
- DataAddr(event.getDataAddr()), event.getUserId())
-
- def method(self, handle, methodName, args, subtypes, addr, userId):
- """
- Override this method to create your own method handler.
- """
- pass
-
-
-#===================================================================================================
-# CONSOLE HANDLER
-#===================================================================================================
-class ConsoleHandler(Thread):
-
- def __init__(self, consoleSession):
- Thread.__init__(self)
- self.__session = consoleSession
- self.__running = True
-
- def cancel(self):
- """
- Stop the handler thread.
- """
- self.__running = None
-
- def run(self):
- event = cqmf2.ConsoleEvent()
- while self.__running:
- valid = self.__session._impl.nextEvent(event, qpid_messaging.Duration.SECOND)
- if valid and self.__running:
- if event.getType() == cqmf2.CONSOLE_AGENT_ADD:
- self.agentAdded(Agent(event.getAgent()))
-
- elif event.getType() == cqmf2.CONSOLE_AGENT_DEL:
- reason = 'filter'
- if event.getAgentDelReason() == cqmf2.AGENT_DEL_AGED:
- reason = 'aged'
- self.agentDeleted(Agent(event.getAgent()), reason)
-
- elif event.getType() == cqmf2.CONSOLE_AGENT_RESTART:
- self.agentRestarted(Agent(event.getAgent()))
-
- elif event.getType() == cqmf2.CONSOLE_AGENT_SCHEMA_UPDATE:
- self.agentSchemaUpdated(Agent(event.getAgent()))
-
- elif event.getType() == cqmf2.CONSOLE_EVENT:
- self.eventRaised(Agent(event.getAgent()), Data(event.getData(0)), event.getTimestamp(), event.getSeverity())
-
- ##
- ## The following methods are intended to be overridden in a sub-class. They are
- ## handlers for events that occur on QMF consoles.
- ##
-
- #
- # A new agent, whose attributes match the console's agent filter, has been discovered.
- #
- def agentAdded(self, agent):
- pass
-
- #
- # A known agent has been removed from the agent list. There are two possible reasons
- # for agent deletion:
- #
- # 1) 'aged' - The agent hasn't been heard from for the maximum age interval and is
- # presumed dead.
- # 2) 'filter' - The agent no longer matches the console's agent-filter and has been
- # effectively removed from the agent list. Such occurrences are likely
- # to be seen immediately after setting the filter to a new value.
- #
- def agentDeleted(self, agent, reason):
- pass
-
- #
- # An agent-restart was detected. This occurs when the epoch number advertised by the
- # agent changes. It indicates that the agent in question was shut-down/crashed and
- # restarted.
- #
- def agentRestarted(self, agent):
- pass
-
- #
- # The agent has registered new schema information which can now be queried, if desired.
- #
- def agentSchemaUpdated(self, agent):
- pass
-
- #
- # An agent raised an event. The 'data' argument is a Data object that contains the
- # content of the event.
- #
- def eventRaised(self, agent, data, timestamp, severity):
- pass
-
-
-#===================================================================================================
-# CONSOLE SESSION
-#===================================================================================================
-class ConsoleSession(object):
- """
- """
-
- def __init__(self, connection, options=""):
- """
- ## The options string is of the form "{key:value,key:value}". The following keys are supported:
- ##
- ## domain:NAME - QMF Domain to join [default: "default"]
- ## max-agent-age:N - Maximum time, in minutes, that we will tolerate not hearing from
- ## an agent before deleting it [default: 5]
- ## listen-on-direct:{True,False} - If True: Listen on legacy direct-exchange address for backward compatibility [default]
- ## If False: Listen only on the routable direct address
- ## strict-security:{True,False} - If True: Cooperate with the broker to enforce strict access control to the network
- ## - If False: Operate more flexibly with regard to use of messaging facilities [default]
- ##
- """
- self._impl = cqmf2.ConsoleSession(connection, options)
-
- def setDomain(self, domain):
- """
- """
- self._impl.setDomain(domain)
-
- def setAgentFilter(self, filt):
- """
- """
- self._impl.setAgentFilter(filt)
-
- def open(self):
- """
- """
- self._impl.open()
-
- def close(self):
- """
- """
- self._impl.close()
-
- def getAgents(self):
- """
- """
- result = []
- count = self._impl.getAgentCount()
- for i in range(count):
- result.append(Agent(self._impl.getAgent(i)))
- return result
-
- def getConnectedBrokerAgent(self):
- """
- """
- return Agent(self._impl.getConnectedBrokerAgent())
-
- ## TODO: Async methods
-
-#===================================================================================================
-# AGENT SESSION
-#===================================================================================================
-class AgentSession(object):
- """
- """
-
- def __init__(self, connection, options=""):
- """
- ## The options string is of the form "{key:value,key:value}". The following keys are supported:
- ##
- ## interval:N - Heartbeat interval in seconds [default: 60]
- ## external:{True,False} - Use external data storage (queries and subscriptions are pass-through) [default: False]
- ## allow-queries:{True,False} - If True: automatically allow all queries [default]
- ## If False: generate an AUTH_QUERY event to allow per-query authorization
- ## allow-methods:{True,False} - If True: automatically allow all methods [default]
- ## If False: generate an AUTH_METHOD event to allow per-method authorization
- ## max-subscriptions:N - Maximum number of concurrent subscription queries permitted [default: 64]
- ## min-sub-interval:N - Minimum publish interval (in milliseconds) permitted for a subscription [default: 3000]
- ## sub-lifetime:N - Lifetime (in seconds with no keepalive) for a subscription [default: 300]
- ## public-events:{True,False} - If True: QMF events are sent to the topic exchange [default]
- ## If False: QMF events are only sent to authorized subscribers
- ## listen-on-direct:{True,False} - If True: Listen on legacy direct-exchange address for backward compatibility [default]
- ## If False: Listen only on the routable direct address
- ## strict-security:{True,False} - If True: Cooperate with the broker to enforce strict access control to the network
- ## - If False: Operate more flexibly with regard to use of messaging facilities [default]
- ##
- """
- self._impl = cqmf2.AgentSession(connection, options)
-
- def setDomain(self, domain):
- """
- """
- self._impl.setDomain(domain)
-
- def setVendor(self, val):
- """
- """
- self._impl.setVendor(val)
-
- def setProduct(self, val):
- """
- """
- self._impl.setProduct(val)
-
- def setInstance(self, val):
- """
- """
- self._impl.setInstance(val)
-
- def setAttribute(self, key, val):
- """
- """
- self._impl.setAttribute(key, val)
-
- def open(self):
- """
- """
- self._impl.open()
-
- def close(self):
- """
- """
- self._impl.close()
-
- def registerSchema(self, schema):
- """
- """
- self._impl.registerSchema(schema._impl)
-
- def addData(self, data, name="", persistent=False):
- """
- """
- return DataAddr(self._impl.addData(data._impl, name, persistent))
-
- def delData(self, addr):
- """
- """
- self._impl.delData(addr._impl)
-
- def methodSuccess(self, handle):
- """
- """
- self._impl.methodSuccess(handle)
-
- def raiseException(self, handle, data):
- """
- """
- if data.__class__ == Data:
- self._impl.raiseException(handle, data._impl)
- else:
- self._impl.raiseException(handle, data)
-
- def raiseEvent(self, data, severity=None):
- """
- """
- if not severity:
- self._impl.raiseEvent(data._impl)
- else:
- if (severity.__class__ != int and severity.__class__ != long) or severity < 0 or severity > 7:
- raise Exception("Severity must be an int between 0..7")
- self._impl.raiseEvent(data._impl, severity);
-
-
-#===================================================================================================
-# AGENT PROXY
-#===================================================================================================
-class Agent(object):
- """
- """
-
- def __init__(self, impl):
- self._impl = impl
-
- def __repr__(self):
- return self.getName()
-
- def getName(self):
- """
- """
- return self._impl.getName()
-
- def getEpoch(self):
- """
- """
- return self._impl.getEpoch()
-
- def getVendor(self):
- """
- """
- return self._impl.getVendor()
-
- def getProduct(self):
- """
- """
- return self._impl.getProduct()
-
- def getInstance(self):
- """
- """
- return self._impl.getInstance()
-
- def getAttributes(self):
- """
- """
- return self._impl.getAttributes()
-
- def query(self, q, timeout=30):
- """
- """
- if q.__class__ == Query:
- q_arg = q._impl
- else:
- q_arg = q
- dur = qpid_messaging.Duration(qpid_messaging.Duration.SECOND.getMilliseconds() * timeout)
- result = self._impl.query(q_arg, dur)
- if result.getType() == cqmf2.CONSOLE_EXCEPTION:
- raise Exception(Data(result.getData(0)))
- if result.getType() != cqmf2.CONSOLE_QUERY_RESPONSE:
- raise Exception("Protocol error, expected CONSOLE_QUERY_RESPONSE, got %d" % result.getType())
- dataList = []
- count = result.getDataCount()
- for i in range(count):
- dataList.append(Data(result.getData(i)))
- return dataList
-
- def loadSchemaInfo(self, timeout=30):
- """
- """
- dur = qpid_messaging.Duration(qpid_messaging.Duration.SECOND.getMilliseconds() * timeout)
- self._impl.querySchema(dur)
-
- def getPackages(self):
- """
- """
- result = []
- count = self._impl.getPackageCount()
- for i in range(count):
- result.append(self._impl.getPackage(i))
- return result
-
- def getSchemaIds(self, package):
- """
- """
- result = []
- count = self._impl.getSchemaIdCount(package)
- for i in range(count):
- result.append(SchemaId(self._impl.getSchemaId(package, i)))
- return result
-
- def getSchema(self, schemaId, timeout=30):
- """
- """
- dur = qpid_messaging.Duration(qpid_messaging.Duration.SECOND.getMilliseconds() * timeout)
- return Schema(self._impl.getSchema(schemaId._impl, dur))
-
- ## TODO: Async query
- ## TODO: Agent method
-
-#===================================================================================================
-# QUERY
-#===================================================================================================
-class Query(object):
- """
- """
-
- def __init__(self, arg1, arg2=None, arg3=None, *kwargs):
- """
- """
- if arg1.__class__ == DataAddr:
- self._impl = cqmf2.Query(arg1._impl)
-
- def getAddr(self):
- """
- """
- return DataAddr(self._impl.getDataAddr())
-
- def getSchemaId(self):
- """
- """
- return SchemaId(self._impl.getSchemaId())
-
- def getPredicate(self):
- """
- """
- return self._impl.getPredicate()
-
- def matches(self, data):
- """
- """
- m = data
- if data.__class__ == Data:
- m = data.getProperties()
- return self._impl.matchesPredicate(m)
-
-#===================================================================================================
-# DATA
-#===================================================================================================
-class Data(object):
- """
- """
-
- def __init__(self, arg=None):
- """
- """
- if arg == None:
- self._impl = cqmf2.Data()
- elif arg.__class__ == cqmf2.Data:
- self._impl = arg
- elif arg.__class__ == Schema:
- self._impl = cqmf2.Data(arg._impl)
- else:
- raise Exception("Unsupported initializer for Data")
- self._schema = None
-
- def getSchemaId(self):
- """
- """
- if self._impl.hasSchema():
- return SchemaId(self._impl.getSchemaId())
- return None
-
- def getAddr(self):
- """
- """
- if self._impl.hasAddr():
- return DataAddr(self._impl.getAddr())
- return None
-
- def getAgent(self):
- """
- """
- return Agent(self._impl.getAgent())
-
- def update(self, timeout=5):
- dur = qpid_messaging.Duration(qpid_messaging.Duration.SECOND.getMilliseconds() * timeout)
- agent = self._impl.getAgent()
- query = cqmf2.Query(self._impl.getAddr())
- result = agent.query(query, dur)
- if result.getType() != cqmf2.CONSOLE_QUERY_RESPONSE:
- raise "Update query failed"
- if result.getDataCount == 0:
- raise "Object no longer exists on agent"
- self._impl = cqmf2.Data(result.getData(0))
-
- def getProperties(self):
- """
- """
- return self._impl.getProperties();
-
- def _getSchema(self):
- if not self._schema:
- if not self._impl.hasSchema():
- raise Exception("Data object has no schema")
- self._schema = Schema(self._impl.getAgent().getSchema(self._impl.getSchemaId()))
-
- def _invoke(self, name, args, kwargs):
- ##
- ## Get local copies of the agent and the address of the data object
- ##
- agent = self._impl.getAgent()
- addr = self._impl.getAddr()
-
- ##
- ## Set up the timeout duration for the method call. Set the default and override
- ## it if the _timeout keyword arg was supplied.
- ##
- timeout = 30
- if '_timeout' in kwargs:
- timeout = kwargs['_timeout']
- dur = qpid_messaging.Duration(qpid_messaging.Duration.SECOND.getMilliseconds() * timeout)
-
- ##
- ## Get the list of arguments from the schema, isolate those that are IN or IN_OUT,
- ## validate that we have the right number of arguments supplied, and marshall them
- ## into a map for transmission.
- ##
- arglist = []
- methods = self._schema.getMethods()
- for m in methods:
- if m.getName() == name:
- arglist = m.getArguments()
- break
- argmap = {}
- count = 0
- for a in arglist:
- if a.getDirection() == DIR_IN or a.getDirection() == DIR_IN_OUT:
- count += 1
- if count != len(args):
- raise Exception("Wrong number of arguments: expected %d, got %d" % (count, len(args)))
- i = 0
- for a in arglist:
- if a.getDirection() == DIR_IN or a.getDirection() == DIR_IN_OUT:
- argmap[a.getName()] = args[i]
- i += 1
-
- ##
- ## Invoke the method through the agent proxy.
- ##
- result = agent.callMethod(name, argmap, addr, dur)
-
- ##
- ## If the agent sent an exception, raise it in a QmfAgentException.
- ##
- if result.getType() == cqmf2.CONSOLE_EXCEPTION:
- exdata = result.getData(0)
- raise QmfAgentException(exdata)
-
- ##
- ## If a successful method response was received, collect the output arguments into a map
- ## and return them to the caller.
- ##
- if result.getType() != cqmf2.CONSOLE_METHOD_RESPONSE:
- raise Exception("Protocol error: Unexpected event type in method-response: %d" % result.getType())
- return result.getArguments()
-
- def __getattr__(self, name):
- ##
- ## If we have a schema and an address, check to see if this name is the name of a method.
- ##
- if self._impl.hasSchema() and self._impl.hasAddr() and self._impl.hasAgent():
- ##
- ## Get the schema for the data object. Note that this call will block if the remote agent
- ## needs to be queried for the schema (i.e. the schema is not in the local cache).
- ##
- self._getSchema()
- methods = self._schema.getMethods()
-
- ##
- ## If the name matches a method in the schema, return a closure to be invoked.
- ##
- for method in methods:
- if name == method.getName():
- return lambda *args, **kwargs : self._invoke(name, args, kwargs)
-
- ##
- ## This is not a method call, return the property matching the name.
- ##
- return self._impl.getProperty(name)
-
- def __setattr__(self, name, value):
- if name[0] == '_':
- super.__setattr__(self, name, value)
- return
- self._impl.setProperty(name, value)
-
-#===================================================================================================
-# DATA ADDRESS
-#===================================================================================================
-class DataAddr(object):
- """
- """
-
- def __init__(self, arg, agentName=""):
- if arg.__class__ == dict:
- self._impl = cqmf2.DataAddr(arg)
- elif arg.__class__ == cqmf2.DataAddr:
- self._impl = arg
- else:
- self._impl = cqmf2.DataAddr(arg, agentName)
-
- def __repr__(self):
- return "%s:%s" % (self.getAgentName(), self.getName())
-
- def __eq__(self, other):
- return self.getAgentName() == other.getAgentName() and \
- self.getName() == other.getName() and \
- self.getAgentEpoch() == other.getAgentEpoch()
-
- def asMap(self):
- """
- """
- return self._impl.asMap()
-
- def getAgentName(self):
- """
- """
- return self._impl.getAgentName()
-
- def getName(self):
- """
- """
- return self._impl.getName()
-
- def getAgentEpoch(self):
- """
- """
- return self._impl.getAgentEpoch()
-
-#===================================================================================================
-# SCHEMA ID
-#===================================================================================================
-class SchemaId(object):
- """
- """
-
- def __init__(self, impl):
- self._impl = impl
-
- def __repr__(self):
- return "%s:%s" % (self.getPackageName(), self.getName())
-
- def getType(self):
- """
- """
- return self._impl.getType()
-
- def getPackageName(self):
- """
- """
- return self._impl.getPackageName()
-
- def getName(self):
- """
- """
- return self._impl.getName()
-
- def getHash(self):
- """
- """
- return self._impl.getHash()
-
-#===================================================================================================
-# SCHEMA
-#===================================================================================================
-class Schema(object):
- """
- """
-
- def __init__(self, stype, packageName=None, className=None, desc=None, sev=None):
- if stype.__class__ == cqmf2.Schema:
- self._impl = stype
- else:
- self._impl = cqmf2.Schema(stype, packageName, className)
- if desc:
- self._impl.setDesc(desc)
- if sev:
- self._impl.setDefaultSeverity(sev)
-
- def __repr__(self):
- return "QmfSchema:%r" % SchemaId(self._impl.getSchemaId())
-
- def finalize(self):
- """
- """
- self._impl.finalize()
-
- def getSchemaId(self):
- """
- """
- return SchemaId(self._impl.getSchemaId())
-
- def getDesc(self):
- """
- """
- return self._impl.getDesc()
-
- def getSev(self):
- """
- """
- return self._impl.getDefaultSeverity()
-
- def addProperty(self, prop):
- """
- """
- self._impl.addProperty(prop._impl)
-
- def addMethod(self, meth):
- """
- """
- self._impl.addMethod(meth._impl)
-
- def getProperties(self):
- """
- """
- props = []
- count = self._impl.getPropertyCount()
- for i in range(count):
- props.append(SchemaProperty(self._impl.getProperty(i)))
- return props
-
- def getMethods(self):
- """
- """
- meths = []
- count = self._impl.getMethodCount()
- for i in range(count):
- meths.append(SchemaMethod(self._impl.getMethod(i)))
- return meths
-
-#===================================================================================================
-# SCHEMA PROPERTY
-#===================================================================================================
-class SchemaProperty(object):
- """
- """
-
- def __init__(self, name, dtype=None, **kwargs):
- """
- """
- if name.__class__ == cqmf2.SchemaProperty:
- self._impl = name
- else:
- self._impl = cqmf2.SchemaProperty(name, dtype)
- if 'access' in kwargs:
- self._impl.setAccess(kwargs['access'])
- if 'index' in kwargs:
- self._impl.setIndex(kwargs['index'])
- if 'optional' in kwargs:
- self._impl.setOptional(kwargs['optional'])
- if 'unit' in kwargs:
- self._impl.setUnit(kwargs['unit'])
- if 'desc' in kwargs:
- self._impl.setDesc(kwargs['desc'])
- if 'subtype' in kwargs:
- self._impl.setSubtype(kwargs['subtype'])
- if 'direction' in kwargs:
- self._impl.setDirection(kwargs['direction'])
-
- def __repr__(self):
- return self._impl.getName()
-
- def getName(self):
- """
- """
- return self._impl.getName()
-
- def getType(self):
- """
- """
- return self._impl.getType()
-
- def getAccess(self):
- """
- """
- return self._impl.getAccess()
-
- def isIndex(self):
- """
- """
- return self._impl.isIndex()
-
- def isOptional(self):
- """
- """
- return self._impl.isOptional()
-
- def getUnit(self):
- """
- """
- return self._impl.getUnit()
-
- def getDesc(self):
- """
- """
- return self._impl.getDesc()
-
- def getSubtype(self):
- """
- """
- return self._impl.getSubtype()
-
- def getDirection(self):
- """
- """
- return self._impl.getDirection()
-
-#===================================================================================================
-# SCHEMA METHOD
-#===================================================================================================
-class SchemaMethod(object):
- """
- """
-
- def __init__(self, name, **kwargs):
- """
- """
- if name.__class__ == cqmf2.SchemaMethod:
- self._impl = name
- else:
- self._impl = cqmf2.SchemaMethod(name)
- if 'desc' in kwargs:
- self._impl.setDesc(kwargs['desc'])
-
- def __repr__(self):
- return "%s()" % self._impl.getName()
-
- def getName(self):
- """
- """
- return self._impl.getName()
-
- def getDesc(self):
- """
- """
- return self._impl.getDesc()
-
- def addArgument(self, arg):
- """
- """
- self._impl.addArgument(arg._impl)
-
- def getArguments(self):
- """
- """
- result = []
- count = self._impl.getArgumentCount()
- for i in range(count):
- result.append(SchemaProperty(self._impl.getArgument(i)))
- return result
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/ruby/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/bindings/qmf2/ruby/CMakeLists.txt b/bindings/qmf2/ruby/CMakeLists.txt
deleted file mode 100644
index e167177..0000000
--- a/bindings/qmf2/ruby/CMakeLists.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# 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.
-#
-
-##------------------------------------------------------
-## Use Swig to generate a literal binding to the C++ API
-##------------------------------------------------------
-set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ruby.i PROPERTIES
- CPLUSPLUS ON
- SWIG_FLAGS "-I${qpid-cpp_SOURCE_DIR}/include;-I${qpid-cpp_SOURCE_DIR}/bindings")
-
-if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
- set (RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_PATH})
-endif ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
-
-include_directories(${RUBY_INCLUDE_DIRS}
- ${qpid-cpp_SOURCE_DIR}/include
- ${qpid-cpp_SOURCE_DIR}/bindings)
-
-list(APPEND SWIG_MODULE_cqmf2_ruby_EXTRA_DEPS
- ${CMAKE_SOURCE_DIR}/include/qmf/qmf2.i
- ${CMAKE_SOURCE_DIR}/include/qpid/swig_ruby_typemaps.i
-)
-swig_add_library(cqmf2_ruby LANGUAGE ruby SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/ruby.i)
-swig_link_libraries(cqmf2_ruby qmf2 qpidmessaging qpidtypes ${RUBY_LIBRARY})
-
-##----------------------------------
-## Install the complete Ruby binding
-##----------------------------------
-install(TARGETS ${SWIG_MODULE_cqmf2_ruby_REAL_NAME}
- RENAME cqmf2.so
- DESTINATION ${RUBY_PFX_ARCH_DIR}
- COMPONENT ${QPID_COMPONENT_CLIENT}
-)
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/ruby/qmf2.rb
----------------------------------------------------------------------
diff --git a/bindings/qmf2/ruby/qmf2.rb b/bindings/qmf2/ruby/qmf2.rb
deleted file mode 100644
index b38aeae..0000000
--- a/bindings/qmf2/ruby/qmf2.rb
+++ /dev/null
@@ -1,857 +0,0 @@
-#
-# 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.
-#
-
-warn 'The qmf2 module is deprecated. It will be removed in the future.'
-
-require 'cqmf2'
-require 'cqpid'
-require 'thread'
-require 'socket'
-require 'monitor'
-
-module Qmf2
-
- Cqmf2.constants.each do |c|
- if c.index('AGENT_') == 0 or c.index('CONSOLE_') == 0 or
- c.index('SCHEMA_') == 0 or c.index('SEV_') == 0 or c.index('QUERY') == 0
- const_set(c, Cqmf2.const_get(c))
- end
- end
-
- SCHEMA_TYPE_DATA = Cqmf2::SCHEMA_TYPE_DATA()
- SCHEMA_TYPE_EVENT = Cqmf2::SCHEMA_TYPE_EVENT()
-
- SCHEMA_DATA_VOID = Cqmf2::SCHEMA_DATA_VOID()
- SCHEMA_DATA_BOOL = Cqmf2::SCHEMA_DATA_BOOL()
- SCHEMA_DATA_INT = Cqmf2::SCHEMA_DATA_INT()
- SCHEMA_DATA_FLOAT = Cqmf2::SCHEMA_DATA_FLOAT()
- SCHEMA_DATA_STRING = Cqmf2::SCHEMA_DATA_STRING()
- SCHEMA_DATA_MAP = Cqmf2::SCHEMA_DATA_MAP()
- SCHEMA_DATA_LIST = Cqmf2::SCHEMA_DATA_LIST()
- SCHEMA_DATA_UUID = Cqmf2::SCHEMA_DATA_UUID()
-
- ACCESS_READ_CREATE = Cqmf2::ACCESS_READ_CREATE()
- ACCESS_READ_WRITE = Cqmf2::ACCESS_READ_WRITE()
- ACCESS_READ_ONLY = Cqmf2::ACCESS_READ_ONLY()
-
- DIR_IN = Cqmf2::DIR_IN()
- DIR_OUT = Cqmf2::DIR_OUT()
- DIR_IN_OUT = Cqmf2::DIR_IN_OUT()
-
- SEV_EMERG = Cqmf2::SEV_EMERG()
- SEV_ALERT = Cqmf2::SEV_ALERT()
- SEV_CRIT = Cqmf2::SEV_CRIT()
- SEV_ERROR = Cqmf2::SEV_ERROR()
- SEV_WARN = Cqmf2::SEV_WARN()
- SEV_NOTICE = Cqmf2::SEV_NOTICE()
- SEV_INFORM = Cqmf2::SEV_INFORM()
- SEV_DEBUG = Cqmf2::SEV_DEBUG()
-
- ##==============================================================================
- ## EXCEPTIONS
- ##==============================================================================
-
- class QmfAgentException < RuntimeError
- attr :data
-
- def initialize(data)
- @data = data
- end
-
- def to_s
- "QmfAgentException: #{@data}"
- end
- end
-
- ##==============================================================================
- ## AGENT HANDLER
- ##==============================================================================
-
- class AgentHandler
-
- def initialize(session)
- @_session = session
- @_running = false
- @_thread = nil
- end
-
- ##
- ## Call the "start" method to run the handler on a new thread.
- ##
- def start
- @_thread = Thread.new do
- run
- end
- end
-
- ##
- ## Request that the running thread complete and exit.
- ##
- def cancel
- @_running = false
- @_thread.join if @_thread
- @_thread = nil
- end
-
- ##
- ## Call the "run" method only if you want the handler to run on your own thread.
- ##
- def run
- @_running = true
- event = Cqmf2::AgentEvent.new
- while @_running do
- valid = @_session.impl.nextEvent(event, Cqpid::Duration.SECOND)
- if valid and @_running
- case event.getType
- when Cqmf2::AGENT_AUTH_QUERY
- yes = authorize_query(Query.new(event.getQuery()), event.getUserId())
- if yes == true
- @_session.impl.authAccept(event)
- else
- @_session.impl.authReject(event)
- end
-
- when Cqmf2::AGENT_QUERY
- context = QueryContext.new(@_session, event)
- get_query(context, Query.new(event.getQuery()), event.getUserId())
-
- when Cqmf2::AGENT_METHOD
- context = MethodContext.new(@_session, event)
- begin
- method_call(context, event.getMethodName(), event.getDataAddr(), event.getArguments(), event.getUserId())
- rescue Exception => ex
- @_session.impl.raiseException(event, "#{ex}")
- end
-
- end
- end
- end
- end
-
-
- ##
- ## The following methods are intended to be overridden in a sub-class. They are
- ## handlers for events that occur on QMF consoles.
- ##
-
- #
- # This method will only be invoked if the "allow-queries" option is enabled on the
- # agent session. When invoked, it provides the query and the authenticated user-id
- # of the querying client.
- #
- # This method must return true if the query is permitted, false otherwise.
- #
- def authorize_query(query, user_id); end
-
- #
- # This method will only be invoked if the "external" option is "True" on the agent
- # session. When invoked, the method should begin the process of responding to a data
- # query. The authenticated user-id of the requestor is provided for informational
- # purposes. The 'context' variable is used to provide the results back to the requestor.
- #
- # For each matching Data object, call context.response(data). When the query is complete,
- # call context.complete(). After completing the query, you should not use 'context' any
- # longer.
- #
- # Note: It is not necessary to process the query synchronously. If desired, this method
- # may store the context for asynchronous processing or pass it to another thread for
- # processing. There is no restriction on the number of contexts that may be in-flight
- # concurrently.
- #
- def get_query(context, query, user_id); end
-
- #
- # This method is invoked when a console calls a QMF method on the agent. Supplied are
- # a context for the response, the method name, the data address of the data object being
- # called, the input arguments (a dictionary), and the caller's authenticated user-id.
- #
- # A method call can end one of two ways: Successful completion, in which the output
- # arguments (if any) are supplied; and Exceptional completion if there is an error.
- #
- # Successful Completion:
- # For each output argument, assign the value directly to context (context.arg1 = "value")
- # Once arguments are assigned, call context._success().
- #
- # Exceptional Completion:
- # Method 1: Call context._exception(data) where 'data' is a string or a Data object.
- # Method 2: Raise an exception (raise "Error Text") synchronously in the method body.
- #
- # Note: Like get_query, method_call may process methods synchronously or asynchronously.
- # This method may store the context for later asynchronous processing. There is no
- # restriction on the number of contexts that may be in-flight concurrently.
- #
- # However, "Method 2" for Exceptional Completion can only be done synchronously.
- #
- def method_call(context, method_name, data_addr, args, user_id); end
- end
-
- class QueryContext
- def initialize(agent, context)
- @agent = agent
- @context = context
- end
-
- def response(data)
- @agent.impl.response(@context, data.impl)
- end
-
- def complete
- @agent.impl.complete(@context)
- end
- end
-
- class MethodContext
- def initialize(agent, context)
- @agent = agent
- @context = context
- end
-
- def _success
- @agent.impl.methodSuccess(@context)
- end
-
- def _exception(ex)
- if ex.class == Data
- @agent.impl.raiseException(@context, ex.impl)
- else
- @agent.impl.raiseException(@context, ex)
- end
- end
-
- def method_missing(name_in, *args)
- name = name_in.to_s
- if name[name.length - 1] == 61
- name = name[0..name.length - 2]
- @context.impl.addReturnArgument(name, args[0])
- else
- super.method_missing(name_in, args)
- end
- end
- end
-
- ##==============================================================================
- ## CONSOLE HANDLER
- ##==============================================================================
-
- class ConsoleHandler
-
- def initialize(session)
- @_session = session
- @_running = false
- @_thread = nil
- end
-
- ##
- ## Call the "start" method to run the handler on a new thread.
- ##
- def start
- @_thread = Thread.new do
- run
- end
- end
-
- ##
- ## Request that the running thread complete and exit.
- ##
- def cancel
- @_running = false
- @_thread.join if @_thread
- @_thread = nil
- end
-
- ##
- ## Call the "run" method only if you want the handler to run on your own thread.
- ##
- def run
- @_running = true
- event = Cqmf2::ConsoleEvent.new
- while @_running do
- valid = @_session.impl.nextEvent(event, Cqpid::Duration.SECOND)
- if valid and @_running
- case event.getType
- when Cqmf2::CONSOLE_AGENT_ADD
- agent_added(Agent.new(event.getAgent))
-
- when Cqmf2::CONSOLE_AGENT_DEL
- reason = :filter
- reason = :aged if event.getAgentDelReason == Cqmf2::AGENT_DEL_AGED
- agent_deleted(Agent.new(event.getAgent), reason)
-
- when Cqmf2::CONSOLE_AGENT_RESTART
- agent_restarted(Agent.new(event.getAgent))
-
- when Cqmf2::CONSOLE_AGENT_SCHEMA_UPDATE
- agent_schema_updated(Agent.new(event.getAgent))
-
- when Cqmf2::CONSOLE_EVENT
- event_raised(Agent.new(event.getAgent), Data.new(event.getData(0)), event.getTimestamp, event.getSeverity)
-
- end
- end
- end
- end
-
-
- ##
- ## The following methods are intended to be overridden in a sub-class. They are
- ## handlers for events that occur on QMF consoles.
- ##
-
- #
- # A new agent, whose attributes match the console's agent filter, has been discovered.
- #
- def agent_added(agent); end
-
- #
- # A known agent has been removed from the agent list. There are two possible reasons
- # for agent deletion:
- #
- # 1) :aged - The agent hasn't been heard from for the maximum age interval and is
- # presumed dead.
- # 2) :filter - The agent no longer matches the console's agent-filter and has been
- # effectively removed from the agent list. Such occurrences are likely
- # to be seen immediately after setting the filter to a new value.
- #
- def agent_deleted(agent, reason); end
-
- #
- # An agent-restart was detected. This occurs when the epoch number advertised by the
- # agent changes. It indicates that the agent in question was shut-down/crashed and
- # restarted.
- #
- def agent_restarted(agent); end
-
- #
- # The agent has registered new schema information which can now be queried, if desired.
- #
- def agent_schema_updated(agent); end
-
- #
- # An agent raised an event. The 'data' argument is a Data object that contains the
- # content of the event.
- #
- def event_raised(agent, data, timestamp, severity); end
- end
-
- ##==============================================================================
- ## CONSOLE SESSION
- ##==============================================================================
-
- class ConsoleSession
- attr_reader :impl
-
- ## The options string is of the form "{key:value,key:value}". The following keys are supported:
- ##
- ## domain:NAME - QMF Domain to join [default: "default"]
- ## max-agent-age:N - Maximum time, in minutes, that we will tolerate not hearing from
- ## an agent before deleting it [default: 5]
- ## listen-on-direct:{True,False} - If True: Listen on legacy direct-exchange address for backward compatibility [default]
- ## If False: Listen only on the routable direct address
- ## strict-security:{True,False} - If True: Cooperate with the broker to enforce strict access control to the network
- ## - If False: Operate more flexibly with regard to use of messaging facilities [default]
- ##
- def initialize(connection, options="")
- @impl = Cqmf2::ConsoleSession.new(connection, options)
- end
-
- def set_domain(domain) @impl.setDomain(domain) end
- def set_agent_filter(filter) @impl.setAgentFilter(filter) end
-
- def open() @impl.open end
- def close() @impl.close end
-
- def agents
- result = []
- count = @impl.getAgentCount
- for i in 0...count
- result << Agent.new(@impl.getAgent(i))
- end
- return result
- end
-
- def connected_broker_agent
- Agent.new(@impl.getConnectedBrokerAgent)
- end
- end
-
- ##==============================================================================
- ## AGENT SESSION
- ##==============================================================================
-
- class AgentSession
- attr_reader :impl
-
- ## The options string is of the form "{key:value,key:value}". The following keys are supported:
- ##
- ## interval:N - Heartbeat interval in seconds [default: 60]
- ## external:{True,False} - Use external data storage (queries and subscriptions are pass-through) [default: False]
- ## allow-queries:{True,False} - If True: automatically allow all queries [default]
- ## If False: generate an AUTH_QUERY event to allow per-query authorization
- ## allow-methods:{True,False} - If True: automatically allow all methods [default]
- ## If False: generate an AUTH_METHOD event to allow per-method authorization
- ## max-subscriptions:N - Maximum number of concurrent subscription queries permitted [default: 64]
- ## min-sub-interval:N - Minimum publish interval (in milliseconds) permitted for a subscription [default: 3000]
- ## sub-lifetime:N - Lifetime (in seconds with no keepalive) for a subscription [default: 300]
- ## public-events:{True,False} - If True: QMF events are sent to the topic exchange [default]
- ## If False: QMF events are only sent to authorized subscribers
- ## listen-on-direct:{True,False} - If True: Listen on legacy direct-exchange address for backward compatibility [default]
- ## If False: Listen only on the routable direct address
- ## strict-security:{True,False} - If True: Cooperate with the broker to enforce strict access control to the network
- ## - If False: Operate more flexibly with regard to use of messaging facilities [default]
- ##
- def initialize(connection, options="")
- @impl = Cqmf2::AgentSession.new(connection, options)
- end
-
- def set_domain(val) @impl.setDomain(val) end
- def set_vendor(val) @impl.setVendor(val) end
- def set_product(val) @impl.setProduct(val) end
- def set_instance(val) @impl.setInstance(val) end
- def set_attribute(key, val) @impl.setAttribute(key, val) end
- def open() @impl.open end
- def close() @impl.close end
- def register_schema(cls) @impl.registerSchema(cls.impl) end
-
- def add_data(data, name="", persistent=false)
- DataAddr.new(@impl.addData(data.impl, name, persistent))
- end
-
- def del_data(addr)
- @impl.del_data(addr.impl)
- end
-
- def raise_event(data, severity=nil)
- if !severity
- @impl.raiseEvent(data.impl)
- else
- @impl.raiseEvent(data.impl, severity)
- end
- end
- end
-
- ##==============================================================================
- ## AGENT PROXY
- ##==============================================================================
-
- class Agent
- attr_reader :impl
-
- def initialize(impl)
- @impl = impl
- end
-
- def name() @impl.getName end
- def epoch() @impl.getEpoch end
- def vendor() @impl.getVendor end
- def product() @impl.getProduct end
- def instance() @impl.getInstance end
- def attributes() @impl.getAttributes end
-
- def to_s
- "#{vendor}:#{product}:#{instance}"
- end
-
- def query(q, timeout=30)
- if q.class == Query
- q_arg = q.impl
- else
- q_arg = q
- end
- dur = Cqpid::Duration.new(Cqpid::Duration.SECOND.getMilliseconds * timeout)
- result = @impl.query(q_arg, dur)
- raise QmfAgentException.new(Data.new(result.getData(0))) if result.getType == Cqmf2::CONSOLE_EXCEPTION
- raise "Protocol error, expected CONSOLE_QUERY_RESPONSE, got #{result.getType}" if result.getType != Cqmf2::CONSOLE_QUERY_RESPONSE
- data_list = []
- count = result.getDataCount
- for i in 0...count
- data_list << Data.new(result.getData(i))
- end
- return data_list
- end
-
- def load_schema_info(timeout=30)
- dur = Cqpid::Duration.new(Cqpid::Duration.SECOND.getMilliseconds * timeout)
- @impl.querySchema(dur)
- end
-
- def packages
- result = []
- count = @impl.getPackageCount
- for i in 0...count
- result << @impl.getPackage(i)
- end
- return result
- end
-
- def schema_ids(package)
- result = []
- count = @impl.getSchemaIdCount(package)
- for i in 0...count
- result << SchemaId.new(@impl.getSchemaId(package, i))
- end
- return result
- end
-
- def schema(sid, timeout=30)
- dur = Cqpid::Duration.new(Cqpid::Duration.SECOND.getMilliseconds * timeout)
- Schema.new(@impl.getSchema(sid.impl, dur))
- end
- end
-
- ##==============================================================================
- ## QUERY
- ##==============================================================================
-
- class Query
- attr_reader :impl
- def initialize(arg1, arg2=nil, arg3=nil)
- if arg1.class == Qmf2::DataAddr
- @impl = Cqmf2::Query.new(arg1.impl)
- end
- end
-
- def addr() DataAddr.new(@impl.getDataAddr()) end
- def schema_id() SchemaId.new(@impl.getSchemaId()) end
- def predicate() @impl.getPredicate() end
-
- def matches?(data)
- map = data
- map = data.properties if data.class == Data
- @impl.matchesPredicate(map)
- end
- end
-
- ##==============================================================================
- ## DATA
- ##==============================================================================
-
- class Data
- attr_reader :impl
-
- def initialize(arg=nil)
- @schema = nil
- if arg == nil
- @impl = Cqmf2::Data.new
- elsif arg.class == Cqmf2::Data
- @impl = arg
- elsif arg.class == Schema
- @impl = Cqmf2::Data.new(arg.impl)
- @schema = arg
- else
- raise "Unsupported initializer for Data"
- end
- end
-
- def to_s
- "#{@impl.getProperties}"
- end
-
- def schema_id
- if @impl.hasSchema
- return SchemaId.new(@impl.getSchemaId)
- end
- return nil
- end
-
- def set_addr(addr)
- @impl.setAddr(addr.impl)
- end
-
- def addr
- if @impl.hasAddr
- return DataAddr.new(@impl.getAddr)
- end
- return nil
- end
-
- def agent
- return Agent.new(@impl.getAgent)
- end
-
- def update(timeout=5)
- dur = Cqpid::Duration.new(Cqpid::Duration.SECOND.getMilliseconds * timeout)
- agent = @impl.getAgent
- query = Cqmf2::Query.new(@impl.getAddr)
- result = agent.query(query, dur)
- raise "Update query failed" if result.getType != Cqmf2::CONSOLE_QUERY_RESPONSE
- raise "Object no longer exists on agent" if result.getDataCount == 0
- @impl = Cqmf2::Data.new(result.getData(0))
- return nil
- end
-
- def properties
- return @impl.getProperties
- end
-
- def get_attr(name)
- @impl.getProperty(name)
- end
-
- def set_attr(name, v)
- @impl.setProperty(name, v)
- end
-
- def [](name)
- get_attr(name)
- end
-
- def []=(name, value)
- set_attr(name, value)
- end
-
- def _get_schema
- unless @schema
- raise "Data object has no schema" unless @impl.hasSchema
- @schema = Schema.new(@impl.getAgent.getSchema(@impl.getSchemaId))
- end
- 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
-
- #
- # We'll be needing the schema to determine how to proceed. Get the schema.
- # Note that this call may block if the remote agent needs to be queried
- # for the schema (i.e. the schema isn't in the local cache).
- #
- _get_schema
-
- #
- # If the name matches a property name, set or return the value of the property.
- #
- @schema.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
-
- #
- # 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.
- #
- @schema.methods.each do |method|
- if method.name == name
- raise "Sets not permitted on methods" if attr_set
- result = @impl.getAgent.callMethod(name, _marshall(method, args), @impl.getAddr)
- if result.getType == Cqmf2::CONSOLE_EXCEPTION
- raise QmfAgentException, result.getData(0)
- end
- return result.getArguments
- 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
-
- #
- # Convert a Ruby array of arguments (positional) into a Value object of type "map".
- #
- private
- def _marshall(schema, args)
- count = 0
- schema.arguments.each do |arg|
- if arg.direction == DIR_IN || arg.direction == DIR_IN_OUT
- count += 1
- end
- end
- raise "Wrong number of arguments: expecter #{count}, got #{arge.length}" if count != args.length
- map = {}
- count = 0
- schema.arguments.each do |arg|
- if arg.direction == DIR_IN || arg.direction == DIR_IN_OUT
- map[arg.name] = args[count]
- count += 1
- end
- end
- return map
- end
- end
-
- ##==============================================================================
- ## DATA ADDRESS
- ##==============================================================================
-
- class DataAddr
- attr_reader :impl
-
- def initialize(arg, agentName="")
- if arg.class == Hash
- @impl = Cqmf2::DataAddr.new(arg)
- elsif arg.class == Cqmf2::DataAddr
- @impl = arg
- else
- @impl = Cqmf2::DataAddr.new(arg, agentName)
- end
- end
-
- def ==(other)
- return @impl == other.impl
- end
-
- def as_map() @impl.asMap end
- def agent_name() @impl.getAgentName end
- def name() @impl.getName end
- def agent_epoch() @impl.getAgentEpoch end
- end
-
- ##==============================================================================
- ## SCHEMA ID
- ##==============================================================================
-
- class SchemaId
- attr_reader :impl
- def initialize(impl)
- @impl = impl
- end
-
- def type() @impl.getType end
- def package_name() @impl.getPackageName end
- def class_name() @impl.getName end
- def hash() @impl.getHash end
- end
-
- ##==============================================================================
- ## SCHEMA
- ##==============================================================================
-
- class Schema
- attr_reader :impl
- def initialize(arg, packageName="", className="", kwargs={})
- if arg.class == Cqmf2::Schema
- @impl = arg
- else
- @impl = Cqmf2::Schema.new(arg, packageName, className)
- @impl.setDesc(kwargs[:desc]) if kwargs.include?(:desc)
- @impl.setDefaultSeverity(kwargs[:sev]) if kwargs.include?(:sev)
- end
- end
-
- def finalize() @impl.finalize end
- def schema_id() SchemaId.new(@impl.getSchemaId) end
- def desc() @impl.getDesc end
- def sev() @impl.getDefaultSeverity end
- def add_property(prop) @impl.addProperty(prop.impl) end
- def add_method(meth) @impl.addMethod(meth.impl) end
-
- def properties
- result = []
- count = @impl.getPropertyCount
- for i in 0...count
- result << SchemaProperty.new(@impl.getProperty(i))
- end
- return result
- end
-
- def methods
- result = []
- count = @impl.getMethodCount
- for i in 0...count
- result << SchemaMethod.new(@impl.getMethod(i))
- end
- return result
- end
- end
-
- ##==============================================================================
- ## SCHEMA PROPERTY
- ##==============================================================================
-
- class SchemaProperty
- attr_reader :impl
-
- def initialize(arg, dtype=nil, kwargs={})
- if arg.class == Cqmf2::SchemaProperty
- @impl = arg
- else
- @impl = Cqmf2::SchemaProperty.new(arg, dtype)
- @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)
- @impl.setSubtype(kwargs[:subtype]) if kwargs.include?(:subtype)
- @impl.setDirection(kwargs[:direction]) if kwargs.include?(:direction)
- end
- end
-
- def name() @impl.getName end
- def access() @impl.getAccess end
- def index?() @impl.isIndex end
- def optional?() @impl.isOptional end
- def unit() @impl.getUnit end
- def desc() @impl.getDesc end
- def subtype() @impl.getSubtype end
- def direction() @impl.getDirection end
-
- def to_s
- name
- end
- end
-
- ##==============================================================================
- ## SCHEMA METHOD
- ##==============================================================================
-
- class SchemaMethod
- attr_reader :impl
-
- def initialize(arg, kwargs={})
- if arg.class == Cqmf2::SchemaMethod
- @impl = arg
- else
- @impl = Cqmf2::SchemaMethod.new(arg)
- @impl.setDesc(kwargs[:desc]) if kwargs.include?(:desc)
- end
- end
-
- def name() @impl.getName end
- def desc() @impl.getDesc end
- def add_argument(arg) @impl.addArgument(arg.impl) end
-
- def arguments
- result = []
- count = @impl.getArgumentCount
- for i in 0...count
- result << SchemaProperty.new(@impl.getArgument(i))
- end
- return result
- end
-
- def to_s
- name
- end
- end
-end
-
-
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/b569b4d6/bindings/qmf2/ruby/ruby.i
----------------------------------------------------------------------
diff --git a/bindings/qmf2/ruby/ruby.i b/bindings/qmf2/ruby/ruby.i
deleted file mode 100644
index 65d0770..0000000
--- a/bindings/qmf2/ruby/ruby.i
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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 cqmf2
-/* Ruby doesn't have a != operator*/
-#pragma SWIG nowarn=378
-%include "std_string.i"
-%include "qpid/swig_ruby_typemaps.i"
-
-/* Define the general-purpose exception handling */
-%exception {
- try {
- $action
- }
- catch (qpid::types::Exception& mex) {
- static VALUE qmferror = rb_define_class("QmfError", rb_eStandardError);
- rb_raise(qmferror, "%s", mex.what());
- }
-}
-
-%include "qmf/qmf2.i"
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[04/14] qpid-cpp git commit: QPID-8073: Add missing package to help
text
Posted by jr...@apache.org.
QPID-8073: Add missing package to help text
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/24c4a378
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/24c4a378
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/24c4a378
Branch: refs/heads/master
Commit: 24c4a37837616b0898773ee1a369c2dc41568d0b
Parents: 2cafedd
Author: Justin Ross <jr...@apache.org>
Authored: Tue Jan 9 15:34:43 2018 -0800
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Mar 14 10:46:27 2018 -0700
----------------------------------------------------------------------
src/tests/check_dependencies.py.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/24c4a378/src/tests/check_dependencies.py.in
----------------------------------------------------------------------
diff --git a/src/tests/check_dependencies.py.in b/src/tests/check_dependencies.py.in
index 57eb760..bcb4cdb 100755
--- a/src/tests/check_dependencies.py.in
+++ b/src/tests/check_dependencies.py.in
@@ -30,7 +30,7 @@ Error! {0}
The tests require Qpid Python, version 1.35.0 or greater. Make sure
Qpid Python is installed and available on the Python path:
- - Linux distributions: Install 'python-qpid'
+ - Linux distributions: Install 'python-qpid' and 'qpid-tests'
- Other: Install qpid-python from source and update PYTHONPATH
See the Qpid website for more information:
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org