-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/7173/
-----------------------------------------------------------
Review request for qpid and Alan Conway.
Description
-------
The C++ qpidd broker gets wedged in command line processing during errors. When
a parse processing element throws then the exception message printed suggests
to use --help. But at that point --help will never work as the code to print
help is bypassed by try/catch program flow. This is a customer frustration
issue as adding --help like the error message suggests still prints no help
message.
This patch promotes the CLI --version,-v and --help,-h switches to a higher
level.
* If --version is present then the version number is printed and the broker
exits. The CLI args are scanned but not checked for validity.
* If --help is present then a flag is set. During later processing when a
processing element throws then the catch block can know to print help before it
passes the exception along.
The patch checks for --version and --help in the CLI only. Having those
switches set in environment variables or the config file are a degenerate cases.
The command line is parsed multiple times during broker startup. Failures early
on will print usage messages different from usage messages that happen after
modules are loaded.
This patch does not rely on any boost::program_options features that are not
already in use.
This addresses bug QPID-3500.
https://issues.apache.org/jira/browse/QPID-3500
Diffs
-----
trunk/qpid/cpp/include/qpid/Options.h 1387614
trunk/qpid/cpp/src/posix/QpiddBroker.cpp 1387614
trunk/qpid/cpp/src/qpid/Options.cpp 1387614
trunk/qpid/cpp/src/qpidd.h 1387614
trunk/qpid/cpp/src/qpidd.cpp 1387614
trunk/qpid/cpp/src/windows/QpiddBroker.cpp 1387614
Diff: https://reviews.apache.org/r/7173/diff/
Testing
-------
Passes make test. Compiles and passes on Windows.
Thanks,
Chug Rolke