ChangeLog ========= OpenSRF 2.5.0-alpha ------------------- commit fb50a71d11bb2865722a1625bad075ca7eaf2ef3 Author: Galen Charlton Date: Wed Dec 7 16:55:23 2016 -0500 update version numbers for 2.5.0-alpha Signed-off-by: Galen Charlton 7 7 README 1 1 src/perl/lib/OpenSRF.pm 1 1 src/python/setup.py 1 1 version.m4 commit fbfde6f6ca1fe8fed8b86c93f315a1110fb74512 Author: Galen Charlton Date: Wed Dec 7 16:52:08 2016 -0500 release notes for 2.5-alpha Signed-off-by: Galen Charlton 136 0 doc/RELEASE_NOTES.txt create mode 100644 doc/RELEASE_NOTES.txt commit b1d19c8b9ff0bee77a3c98e793bf8efa67693a4e Author: Galen Charlton Date: Wed Dec 7 13:34:15 2016 -0500 LP#1648188: example HAProxy configuration Add an example configuration for using HAProxy. Signed-off-by: Galen Charlton 53 1 README 25 0 examples/haproxy/osrf-ws-http-proxy create mode 100644 examples/haproxy/osrf-ws-http-proxy commit 93da6fb07c8b613011028f577b55fa8ba940f1ee Author: Galen Charlton Date: Wed Dec 7 12:54:05 2016 -0500 LP#1638651: add instructions for using NGINX Signed-off-by: Galen Charlton 58 0 README commit ededc269eacb9e69e30074bba2cff35a3148e62e Author: Bill Erickson Date: Mon Oct 31 15:56:32 2016 -0400 LP#1638651: example Nginx websockets/http(s) proxy config Example using Nginx to proxy all websocket, http, and https Apache traffic. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 56 0 examples/nginx/osrf-ws-http-proxy create mode 100644 examples/nginx/osrf-ws-http-proxy commit a3b2a15f27709815155eb9dbb8026343000753d5 Author: Galen Charlton Date: Wed Dec 7 11:58:35 2016 -0500 LP#1382038: clarify one step of installing websockets support Specify directory to be in before copying the Apache websockets configuration file. Signed-off-by: Galen Charlton 4 1 README commit a1fe6e1c1ccb7b3efab386a7f34c0555d07bd7e7 Author: Galen Charlton Date: Wed Dec 7 11:53:49 2016 -0500 LP#1382038: adjustments to download instructions - Use "OSRFVERSION" in the master branch rather than a specific version number; this is meant to be changed during the release process. - Update references to the OpenSRF downloads index page. Signed-off-by: Galen Charlton 4 4 README commit cd06277c3972437e676f51744749009c0d7eeb60 Author: Remington Steed Date: Mon Nov 21 10:58:33 2016 -0500 LP#1382038: Add instructions for implied download/unpack step Occasionally, new users have complained that the installation instructions making too many assumptions about what a user knows. This commit explicitly instructs users in downloading the source tarball, unpacking it, and changing the working directory so they will be ready for the next instructions. Signed-off-by: Remington Steed Signed-off-by: Galen Charlton 24 0 README commit 5aa8a398e01e2642fd4b08c93fe9c719039dbedf Author: Galen Charlton Date: Thu Nov 3 18:08:54 2016 -0400 LP#1612771: fix chunking for atomic C methods This patch also refactors the code that actually does the splitting and sending of chunked responses into a new public function, osrfSendChunkedResult(). Signed-off-by: Galen Charlton Signed-off-by: Ben Shum Signed-off-by: Mike Rylander 4 0 include/opensrf/osrf_app_session.h 96 10 src/libopensrf/osrf_app_session.c 2 58 src/libopensrf/osrf_application.c commit 168b4cafe766ec976e075ec2ea496c00a27dc7d0 Author: Galen Charlton Date: Tue Nov 1 17:22:48 2016 -0400 LP#1631522: add release notes for ->dispatch Signed-off-by: Galen Charlton 12 0 doc/Dispatch-Mode-for-Subrequests.txt create mode 100644 doc/Dispatch-Mode-for-Subrequests.txt commit 31a0bfea9911f24f563d70bfdea6ba7759071842 Author: Galen Charlton Date: Tue Nov 1 17:20:49 2016 -0400 LP#1631522: dev doc now describes ->dispatch Signed-off-by: Galen Charlton 5 1 doc/Application-HOWTO.txt commit 1431100b4737a61b1a294bbf66f9a5867dec358b Author: Galen Charlton Date: Tue Nov 1 17:03:03 2016 -0400 LP#1631522: include example of ->dispatch in example app This patch also makes the Perl opensrf.math demo app work correctly, as it hadn't been constructing opensrf.dbmath method names correctly. Signed-off-by: Galen Charlton 4 5 src/perl/lib/OpenSRF/Application/Demo/Math.pm commit 9d106aef9ab0a8d5af75977ffb4cc5f8f3fe5c79 Author: Mike Rylander Date: Thu Aug 25 17:42:31 2016 -0400 LP#1631522: Dispatch mode for method_lookup subrequests There is a pattern in the wild of using OpenSRF's method_lookup() facility to decide between one of several local methods when delegating to pre-existing logic. Often times, we want to simply hand control over to another method, but the output of a subrequest's run() is an array of results. The caller has to know if, and how, to restructure the result for the client. Instead, we can now call dispatch() instead of run() and have OpenSRF session control completely passed to the delegate code. This way, the delegate code need not know anything about its caller, and vice versa. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 28 3 src/perl/lib/OpenSRF/AppSession.pm 8 1 src/perl/lib/OpenSRF/Application.pm commit dbf9ec150dfa6a5b87028aa890a80b529dfe5683 Author: Galen Charlton Date: Tue Nov 1 16:30:26 2016 -0400 LP#1612771: add release notes Signed-off-by: Galen Charlton 19 0 doc/Bundling-and-Chunking.txt create mode 100644 doc/Bundling-and-Chunking.txt commit 76a5fd0055b2af25f0783825c951021a32a5f17d Author: Galen Charlton Date: Tue Nov 1 16:22:10 2016 -0400 LP#1612771: fix error in POD Signed-off-by: Galen Charlton 1 1 src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm commit 4f73f38bae3892fa4f6b3980c5724af521a31fde Author: Galen Charlton Date: Tue Nov 1 16:03:50 2016 -0400 LP#1612771: update protocol documentation Now that we have PARTIAL and NOCONTENT statuses, let's mention them in the documentation for the benefit of folks writing future clients. Signed-off-by: Galen Charlton 9 1 doc/OpenSRF-Messaging-Protocol.html commit d79c7eee6ce44bd3b38bd712d487cb31752c3a31 Author: Galen Charlton Date: Tue Nov 1 15:46:13 2016 -0400 LP#1612771: don't adjust max_stanza_size during installation As the typical max_stanza_size for ejabberd installations is larger than what OpenSRF now needs, this patch adjusts the installation instructions to remove the step to change max_stanza_size. Signed-off-by: Galen Charlton 10 13 README commit fd1ce3521553d6ddbc42762090be8ecdbc0b39f2 Author: Mike Rylander Date: Sun Feb 23 15:55:52 2014 -0500 LP#1612771: Add chunking support to JS implementation Signed-off-by: Mike Rylander Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 3 0 include/opensrf/osrf_message.h 57 6 src/javascript/opensrf.js commit 75a9906d5a5e90c60c8e0614e0c71796c511ec18 Author: Bill Erickson Date: Fri Feb 28 12:44:11 2014 -0500 LP#1612771: implement C max_chunk_size server support Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 94 23 src/libopensrf/osrf_application.c 7 1 src/libopensrf/osrf_message.c commit 18be4a4cf242a274cf5a3143c2063d75331ec7c0 Author: Bill Erickson Date: Thu Feb 27 15:18:15 2014 -0500 LP#1612771: set Perl / C max_chunk_size default sizes default max bundle size == 25K default max chunk size == 50K Note with Ejabberd using 65536 as the default max stanza size, these new OpenSRF defaults mean that all messages will fit the default message size constraints -- i.e. no more need to raise the max_stanza_size. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 6 1 include/opensrf/osrf_app_session.h 0 5 src/libopensrf/osrf_application.c 2 2 src/perl/lib/OpenSRF/Application.pm commit b3b6b4211472e4897581a93d9615d8544f29779f Author: Mike Rylander Date: Sun Feb 23 16:35:17 2014 -0500 LP#1612771: C support for receiving chunked responses * client parsing * consistent w/ Perl, we now have "bundling" and "chunking" Signed-off-by: Bill Erickson 1 0 include/opensrf/osrf_app_session.h 3 2 include/opensrf/osrf_application.h 56 0 src/libopensrf/osrf_app_session.c 9 8 src/libopensrf/osrf_application.c commit 56e65d1e6fb4ee72b28b4e008b9461d5bac55b8d Author: Bill Erickson Date: Mon Feb 24 15:14:19 2014 -0500 LP#1612771: Perl max_chunk_size additions * Added missing max_chunk_size method to AppSession * Copy API max_chunk_size value into the handler AppRequest * Fix error where no-chunking resulted in empty responses Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 25 14 src/perl/lib/OpenSRF/AppSession.pm 2 1 src/perl/lib/OpenSRF/Application.pm 12 4 src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm commit 01f95834835bed94df93a7fdad59e38486e6485a Author: Mike Rylander Date: Sun Feb 23 14:51:13 2014 -0500 LP#1612771: bundling and chunking This patch is first in a series of patches that provides the following features: * OpenSRF message bundling -- Pack multiple OpenSRF messages together in a single XMPP envelope, as long as we believe more messages will be sent in the future and we are below some threshold of combined message size. The default for that threshold is 25Kb. * OpenSRF message chunking -- Break up large OpenSRF messages across multiple XMPP envelopes. This is implemented with a new OpenSRF message type. C, Perl, and Javascript libraries are taught how to reconstruct chunked messages. The default chunking threshold is 50Kb, just a bit below the default ejabberd max stanza size of 64Kb. This patch in particular renames "chunking" to "bundling", then implements message splitting ("chunking") in Perl using two new oilsResult subclasses Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 80 43 src/perl/lib/OpenSRF/AppSession.pm 13 6 src/perl/lib/OpenSRF/Application.pm 83 1 src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm commit 784233808062dbc599b649ce9858759ab0a8dff3 Author: Ben Shum Date: Tue Jul 5 12:53:13 2016 -0400 LP#1603708: Remove support for Ubuntu 12.04 Precise With support for Ubuntu 16.04 Xenial in place, remove the oldest LTS, which is Ubuntu 12.04 Precise. Signed-off-by: Ben Shum Signed-off-by: Galen Charlton 2 3 README 3 13 src/extras/Makefile.install commit 15f8c538af5469545fabab9e21252f49555ae131 Author: Ben Shum Date: Tue Jul 5 12:50:34 2016 -0400 Docs: Change 14.04 to Trusty in README For consistency, change references from numbered "Ubuntu 14.04" to "Ubuntu Trusty" Signed-off-by: Ben Shum Signed-off-by: Galen Charlton 3 3 README commit e3f9b6a3adb8391e83221909575554ab1ec8c74c Author: Ben Shum Date: Tue Jul 5 12:44:17 2016 -0400 Docs: Add Xenial references in the websocket setup instructions We were missing Xenial references for the websocket setup instructions. They are the same as Trusty, so group together for now. Also, change references to "Ubuntu 16.04" to read "Ubuntu Xenial" too. Signed-off-by: Ben Shum Signed-off-by: Galen Charlton 5 5 README commit 34038f2e3dd9a2ad6842f3593938955143213b11 Author: Bill Erickson Date: Fri Jul 10 10:52:20 2015 -0400 LP#1473479 Syslog configuration adoption When an OpenSRF client is run with syslog enabled and with the OSRF_ADOPT_SYSLOG environment variable set to a true value, no attempt is made to modify the syslog configuration, including no calls to openlog()/closelog() and no modification of the syslog facility when calling syslog(). Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 9 3 src/perl/lib/OpenSRF/Utils/Logger.pm commit b6557d6a781fe7f7e16d0c5df5707ce5f8f49d48 Author: Mike Rylander Date: Fri Oct 7 12:19:52 2016 -0400 LP#1631520: configure install location of Perl modules Add --with-perlbase configure option to specify an alternative location for installing the Perl modules. This can be useful for setups that want to run the Perl modules from a shared filesystem or environments that need to run multiple versions of OpenSRF simultaneously. Users of --with-perlbase are responsible for ensuring that PERL5LIB is set appropriately. To test ------- [1] Use --with-perlbase during the configure step, e.g., ./configure --perl-base /tmp/perl [2] Run make; make check; sudo make install [3] Verify that the Perl modules are installed under /tmp/perl. [4] Make a change to a Perl source file, then go to src/perl, then run sudo ./Build install. Verify that it remembers the --with-perlbase directory and installs the updated module there. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 1 0 Makefile.am 6 0 configure.ac 1 1 src/perl/Makefile.am commit 1c8a7dcb24d4ea3a8aa7dc718d2e1f0b12430cb1 Author: Ben Shum Date: Tue May 24 01:24:09 2016 -0400 LP#1585041: Move debian_sys_config target for Debian distributions Similar to how things were reordered for Ubuntu, let's move debian_sys_config for Debian distributions. Signed-off-by: Ben Shum Signed-off-by: Galen Charlton 4 4 src/extras/Makefile.install commit f3ac7f14ec675e99784b9a5037be66f8c90c22f2 Author: Mike Rylander Date: Tue Feb 23 11:22:34 2016 -0500 LP#1485371: Release notes for TZ handling in OpenSRF Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 44 0 doc/TZ-handling.txt create mode 100644 doc/TZ-handling.txt commit 91a8f051220ba1b29e76068a58cbb400ae521834 Author: Mike Rylander Date: Mon Aug 3 13:27:56 2015 -0400 LP#1485371: Use client-supplied TZ Currently, there is no protocol-level mechanism for passing the client's desired timezone to the server. In much the same way we pass the locale, we can let the server know what timezone it should use when interpreting time stamps. To do this we: * Teach perl server code to live in the client TZ, if supplied * Teach perl client code to send the current $ENV{TZ} * Teach javascript library to include client TZ in gateway/translator/websocket communication * Teach C code to pull the incoming TZ and apply it to outgoing messages * Teach srfsh to pull TZ from the environment and pass it with requests Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 5 0 include/opensrf/osrf_app_session.h 7 0 include/opensrf/osrf_message.h 21 0 src/javascript/opensrf.js 32 0 src/libopensrf/osrf_app_session.c 33 0 src/libopensrf/osrf_message.c 5 0 src/libopensrf/osrf_stack.c 25 1 src/perl/lib/OpenSRF/DomainObject/oilsMessage.pm 4 0 src/srfsh/srfsh.c commit e7fe347408b52295f2f820f9527ccf00952b71e8 Author: Jason Stephenson Date: Wed May 4 13:05:31 2016 -0400 LP#1551090: Update README for Ubuntu 16.04 (Xenial Xerus). Add installation steps for Ubuntu 16.04. Signed-off-by: Jason Stephenson Signed-off-by: Ben Shum 31 5 README commit 032a964795df73053d09dca37e62e3e276ce343e Author: Jason Stephenson Date: Tue Apr 19 16:56:15 2016 -0400 LP#1551090: Enable mod_perl2 on Ubuntu 16.04 (Xenial Xerus). Ubuntu Xenial Xerus does not automatically enable mod_perl2 for Apache2 when the package is installed, so we enable it via the Makefile.install. Signed-off-by: Jason Stephenson Signed-off-by: Ben Shum 5 1 src/extras/Makefile.install commit 1fca796c47c9e9c06e65b91085c13ad2cbe52954 Author: Chris Sharp Date: Thu Feb 18 20:12:40 2016 -0500 LP#1551090: Adding apache2-dev dependency to xenial and fixing whitespace Signed-off-by: Chris Sharp Signed-off-by: Jason Stephenson Signed-off-by: Ben Shum Conflicts: src/extras/Makefile.install 5 4 src/extras/Makefile.install commit e91074cf23eeca5da7e9c00977448dcc19b779cc Author: Chris Sharp Date: Thu Feb 18 18:10:34 2016 -0500 LP#1551090: Since we move apache to the "install_extra_debs*" targets, we need to move debian_sys_config further down to compensate. Signed-off-by: Chris Sharp Signed-off-by: Jason Stephenson Signed-off-by: Ben Shum 4 4 src/extras/Makefile.install commit 46dfeaf7245f81c1a8c9833b8cac87a997b23433 Author: Chris Sharp Date: Wed Feb 17 19:35:02 2016 -0500 LP#1551090: Adding necessary connectivity for xenial deb installation. Signed-off-by: Chris Sharp Signed-off-by: Jason Stephenson Signed-off-by: Ben Shum 4 1 src/extras/Makefile.install commit 334b6644ac319403f2095cff6f3cef992a9148ae Author: Chris Sharp Date: Wed Feb 17 19:26:01 2016 -0500 LP#1551090: Adding apache2 package to Makefile.install deb list. Signed-off-by: Chris Sharp Signed-off-by: Jason Stephenson Signed-off-by: Ben Shum 1 0 src/extras/Makefile.install commit c59b54a7c4f1d1561d23393f6122669d50f41166 Author: Chris Sharp Date: Wed Feb 17 15:28:05 2016 -0500 LP#1551090: Updating Makefile to accommodate ubuntu-xenial target. Removing some redundancy in the extra debs lists. Signed-off-by: Chris Sharp Signed-off-by: Jason Stephenson Signed-off-by: Ben Shum Conflicts: src/extras/Makefile.install 17 16 src/extras/Makefile.install commit c9174e7372b0c14091035617f0689f3719f7506b Author: Galen Charlton Date: Fri Mar 18 10:59:11 2016 -0400 LP#1559121: remove Debian Squeeze support Now that Debian Squeeze's LTS (long-term support) period has ended, Evergreen no longer offers community support for that distribution. This patch removes references to Squeeze from the installation scripts and documentation. To test: [1] Verify that Debian Squeeze is no longer referenced in the installation documentation. Signed-off-by: Galen Charlton Signed-off-by: Ben Shum 0 1 README 1 14 src/extras/Makefile.install commit b6cf3eb912fa501a23f4a3f5664f1a12228e731b Author: Galen Charlton Date: Thu Feb 4 13:09:48 2016 -0500 LP#1350457: add test case for perl2JSONObject change Signed-off-by: Galen Charlton 4 1 src/perl/t/09-Utils-JSON.t commit e1581d4248a6fd42f6ebee233387777f63e25022 Author: Mike Rylander Date: Wed Jul 30 13:29:46 2014 -0400 LP#1350457: Pass caller's session to subrequests called via method_lookup In the process of looking up a method for an internal subrequest, we lose session info. This is a problem when the subrequest makes a remote request, because then the subrequest can't look up the proper locale, among other things. The forthcoming branch passes the caller's session to the subrequest. This patch also teaches OpenSRF object registration how to strip certain object members -- in particular, the session -- so that introspection continues to work. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 9 4 src/perl/lib/OpenSRF/Application.pm 8 1 src/perl/lib/OpenSRF/Utils/JSON.pm commit 69cbe8000a5123aab33fcb2441c1e136506964a0 Author: Jason Etheridge Date: Tue Jul 14 14:54:27 2015 -0400 LP#1474507: fix interval_to_seconds for weeks and seconds This patch fixes an issue where OpenSRF::Utils::interval_to_seconds() was not recognizing intervals expressed as seconds or weeks. Signed-off-by: Jason Etheridge Signed-off-by: Galen Charlton 2 2 src/perl/lib/OpenSRF/Utils.pm commit 7a714ae480f238211b37fcdb248aecea93ece234 Author: Jason Etheridge Date: Tue Jul 14 15:10:15 2015 -0400 LP#1474507: tests for interval_to_seconds Signed-off-by: Galen Charlton 16 0 src/perl/t/09-Utils-interval_to_seconds.t create mode 100644 src/perl/t/09-Utils-interval_to_seconds.t commit 55807240854d0d532a5f70f1f483ed8086eb9d95 Author: Mike Rylander Date: Thu Sep 10 16:56:13 2015 -0400 LP#1494486: Limit damage caused by dropped drone XMPP sockets It is apparently possible for drones to get into a state where their XMPP socket is closed but they don't notice. This is bad because the drone can continue to receive requests from its listener but can no longer respond to them. To limit the pain this can cause, we should kill the drone as soon as we notice this condition. To avoid overhead, this commit notices when the socket returns an error (or raises a signal, in Perl) upon write, and exits immediately. One message will be lost, but the drone will no longer be a black hole that does nothing but absorb requests it can never fill. To test ------- [1] Start an OpenSRF stack and look for a drone process. [2] Use lsof to identify which socket that drone is using to talk to XMPP. [3] Use gdb to attach to the process and close the socket, e.g., $ gdb -p $PID (gdb) p close(11) # or whatever the socket number was (gdb) c [4] Use srfsh to make requests of that service. Eventually, one of them will hit the drone. [5] Sans patch, the request will get handled by the drone, but the results will never get sent, and the drone will remain available to handle other requests. [6] With the patch, the drone will exit when it discovers that it can no longer write to the XMPP socket. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 4 2 src/libopensrf/osrf_app_session.c 5 0 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm