LP#1257264: make test cases for JSON::XS Boolean-ness more generic

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jeff Godin <jgodin@tadl.org>
LP#1257264: Use the built-in JSON-y test for bools

This removes a dependency on internal details of JSON::XS's
implementation of Boolean types which changed with the release
of JSON::XS 3.0.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jeff Godin <jgodin@tadl.org>
Add some additional boolean-related JSON tests

Add some additional boolean-related JSON tests, enable use strict /
use warnings for JSON tests.

Signed-off-by: Jeff Godin <jgodin@tadl.org>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
LP#1180849: test case - ignoring subrequest responses after respond_complete()

This patch adds a regression test for verifying that subrequests
ignore additional responses after respond_complete() is called.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Protect subrequests from post-complete messages

Subrequests (AKA method_lookup()-based API calls) sometimes append
final-lvalue responses to the response list even after respond_complete()
has been called from within the implementation method.  This commit
discards all post-respond_complete values, protecting against extra,
spurious values being returned to the ultimate client.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
OpenSRF client disconnect robustification (Perl)

* Improve detection of client connection state with jabber server

  Be more aggressive in testing and responding to failed connectivity.
  It can happen in various ways, depending on what's happening to the
  jabber server (death, delay, graceful shutdown).  With these changes
  we attempt to cover all the bases and detect as early as possible that
  a connection has died, specifically when trying to create a new
  connection after one has failed.

* Do a better job of cleaning up dead connections

  Transport::PeerHandle now has a reset() action which disconnects (when
  possible) and clears the global connection reference.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
recover osrf_control router start

With the addition of service verification, which ensures that a service
is meant to run on the requested host, we lost the ability to start the
router by itself, since the router is never explicitly configured to run
anywhere.  This patch assumes the router is always a valid service.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
osrf_control router-de/re-register and reload commands

Added support for the following new command line options:

--router-de-register
--router-de-register-all
    Sends a SIGUSR1 signal to the selected service(s), which causes each
    service's listener process to send an "unregister" command to all
    registered routers.  The --all variant sends the signal to all
    running listeners.  The non-(--all) variant requires a --service.

--router-re-register
--router-re-register-all
    Sends a SIGUSR2 signal to the selected service(s), which causes each
    service's listener process to send a "register" command to all
    configured routers routers.  The --all variant sends the signal to
    all running listeners.  The non-(--all) variant requires a --service.

--reload
--reload-all
    Sends a SIGHUP signal to the selected service(s).  SIGHUP causes
    each Listener process to reload its opensrf_core.xml config file
    and gracefully re-launch drone processes.  The -all variant sends
    the signal to all services.  The non-(-all) variant requires a
    --service.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
fix typo and remove repeated word

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Merge branch 'rel_2_3'