3 years agoPROTON-2032: update versions for 0.27.2-SNAPSHOT 0.27.x
Robbie Gemmell [Mon, 15 Apr 2019 17:02:48 +0000 (18:02 +0100)] 
PROTON-2032: update versions for 0.27.2-SNAPSHOT

3 years agoPROTON-2032: update versions for 0.27.1-rc1 0.27.1 0.27.1-rc1
Robbie Gemmell [Mon, 15 Apr 2019 16:58:50 +0000 (17:58 +0100)] 
PROTON-2032: update versions for 0.27.1-rc1

3 years agoPROTON-2032, PROTON-2002: update .so versions for 0.27.1 (rc1) after review
Robbie Gemmell [Mon, 15 Apr 2019 16:41:08 +0000 (17:41 +0100)] 
PROTON-2032, PROTON-2002: update .so versions for 0.27.1 (rc1) after review

(cherry picked from commit ca805acae6a238fe60bd49406821a00f1d9043b3)

3 years agoPROTON-2018: Don't use a fixed port for the ssl proactor test
Andrew Stitcher [Fri, 12 Apr 2019 20:56:57 +0000 (16:56 -0400)] 
PROTON-2018: Don't use a fixed port for the ssl proactor test

(cherry picked with changes from commit be0b0c277d5cdeeb2e7430b40d1b370b4d1425c9)

3 years agoPROTON-2027: use make_work instead of lambda for wider platform coverage
Cliff Jansen [Tue, 9 Apr 2019 21:04:41 +0000 (14:04 -0700)] 
PROTON-2027: use make_work instead of lambda for wider platform coverage

(cherry picked from commit 5b6ed8e166c47922ee94502ac30a7d5c235a4406)

3 years agoPROTON-2027: Test case with two closing connection contexts competing with a third...
Cliff Jansen [Mon, 8 Apr 2019 11:58:48 +0000 (04:58 -0700)] 
PROTON-2027: Test case with two closing connection contexts competing with a third context in pn_proactor_disconnect().

(cherry picked from commit f973528912b3b74e8d1e50317429e202e9f51ec4)

3 years agoPROTON-2027: Make disconnect work like other wake mechanisms (eg. pn_connection_wake...
Cliff Jansen [Mon, 8 Apr 2019 11:47:52 +0000 (04:47 -0700)] 
PROTON-2027: Make disconnect work like other wake mechanisms (eg. pn_connection_wake) and check for closing status.   Count disconnects correctly for competing closes.

(cherry picked from commit d4a6971af2c64b7d9e8aa31a1e807690d4f26a7e)

3 years agoPROTON-2006: [C++] Fixed up service bus example to work
Andrew Stitcher [Tue, 26 Mar 2019 20:26:26 +0000 (16:26 -0400)] 
PROTON-2006: [C++] Fixed up service bus example to work
- Connection options needed fixing
-- You can't put user/password in the connection url anymore
-- Need to turn SSL on and ensure SASL mech is PLAIN
- Misuse of scheduling stopped the application exiting when finished

(cherry picked from commit eab1fef19b4e58a8b79408f29e10fe36b07a3b83)

3 years agoPROTON-2014: [c] Fix example broker to warn when it fails to set up ssl
Andrew Stitcher [Fri, 8 Mar 2019 18:14:34 +0000 (13:14 -0500)] 
PROTON-2014: [c] Fix example broker to warn when it fails to set up ssl
- Also make send-ssl tell you the remote peer

(cherry picked from commit 159fac1f90d9b1ace1138d510176e7a5da54e9e9)

3 years agoPROTON-2014: [c] Ensure SSL mutual authentication
Andrew Stitcher [Thu, 7 Mar 2019 20:51:11 +0000 (15:51 -0500)] 
PROTON-2014: [c] Ensure SSL mutual authentication

(cherry picked from commit 97c7733f07712665f3d08091c82c393e4c3adbf7)

3 years agoPROTON-2018: [c] Introduce some ssl protocol tests
Andrew Stitcher [Thu, 7 Mar 2019 20:50:08 +0000 (15:50 -0500)] 
PROTON-2018: [c] Introduce some ssl protocol tests

(cherry picked from commit 2e7b4027ae63471b95d0f2a829a798d3329b395a)

3 years agoPROTON-2004: [c] Allow Proton to compile with libressl
Andrew Stitcher [Mon, 4 Mar 2019 18:49:53 +0000 (13:49 -0500)] 
PROTON-2004: [c] Allow Proton to compile with libressl

(cherry picked from commit 87898b3d71aea5bfd9e4157d6da04071e1461339)

3 years agoPROTON-2017: [go] fix proton-c version check
Alan Conway [Thu, 7 Mar 2019 18:34:43 +0000 (13:34 -0500)] 
PROTON-2017: [go] fix proton-c version check

(cherry picked from commit ae3af505020b76c0027d068cc4139857d5521135)

3 years agoNO-JIRA: Fix unused-variable warning from clang
Jiri Danek [Thu, 21 Feb 2019 06:49:26 +0000 (22:49 -0800)] 
NO-JIRA: Fix unused-variable warning from clang

(cherry picked from commit f16be7816f5736e932ae588b605d36b67e757206)

3 years agoNO-JIRA: [c] missing break in send-ssl.c example
Jiří Daněk [Thu, 21 Feb 2019 16:51:49 +0000 (17:51 +0100)] 
NO-JIRA: [c] missing break in send-ssl.c example

    CID 214944 (#1 of 1): Missing break in switch (MISSING_BREAK)unterminated_case: The case for value
    PN_CONNECTION_REMOTE_OPEN is not terminated by a 'break' statement.

(cherry picked from commit 01d88598ecccd8cd24bd02533bc476594412a1a0)

3 years agoPROTON-2010: Fix for Proton Python handling of comments and mech lists in connection...
Kim van der Riet [Tue, 26 Feb 2019 17:20:25 +0000 (12:20 -0500)] 
PROTON-2010: Fix for Proton Python handling of comments and mech lists in connection config file. Also, small fix for JSON syntax in connect-config.md.

(cherry picked from commit 4f18c353b5f73cc020d3ba3b66600e7ddc7d5441) with fixups

3 years agoPROTON-1989: [c] Support TLSv1.3 with openssl 1.1.1
Andrew Stitcher [Fri, 22 Feb 2019 21:20:07 +0000 (16:20 -0500)] 
PROTON-1989: [c] Support TLSv1.3 with openssl 1.1.1

(cherry picked from commit 7db4c2c0b720c567d808ae71e49abeb734f5a6a2)

3 years agoPROTON-2013: Updated Travis CI macOS jobs to be xcode8.3 and xcode10.1
Roddie Kieley [Thu, 7 Mar 2019 13:14:52 +0000 (09:44 -0330)] 
PROTON-2013: Updated Travis CI macOS jobs to be xcode8.3 and xcode10.1

(cherry picked from commit dba3586158fe1cbd7b477c58338ed6e6b5d1c019)

3 years agoupdate versions to 0.27.1-SNAPSHOT
Robbie Gemmell [Thu, 11 Apr 2019 14:07:59 +0000 (15:07 +0100)] 
update versions to 0.27.1-SNAPSHOT

3 years agoPROTON-1944: update versions for 0.27.0-rc1 0.27.0 0.27.0-rc1
Robbie Gemmell [Wed, 6 Feb 2019 12:23:37 +0000 (12:23 +0000)] 
PROTON-1944: update versions for 0.27.0-rc1

3 years agoPROTON-1944: update .so version to account for changes
Robbie Gemmell [Wed, 6 Feb 2019 12:23:11 +0000 (12:23 +0000)] 
PROTON-1944: update .so version to account for changes

3 years agoPROTON-1990: no-op whitespace "fix". Sorry for the Windows AppVeyor test abuse.
Cliff Jansen [Wed, 6 Feb 2019 05:47:38 +0000 (21:47 -0800)] 
PROTON-1990: no-op whitespace "fix".  Sorry for the Windows AppVeyor test abuse.

3 years agoNO-JIRA: Extend timeout on proton_tests/reactor.py test_schedule_cancel
Alan Conway [Tue, 5 Feb 2019 19:44:49 +0000 (14:44 -0500)] 
NO-JIRA: Extend timeout on proton_tests/reactor.py test_schedule_cancel

Avoid false failures on slow CI machines.

3 years agoPROTON-1990: stay within C++03 constraints
Cliff Jansen [Tue, 5 Feb 2019 17:08:35 +0000 (09:08 -0800)] 
PROTON-1990: stay within C++03 constraints

3 years agoMerge pull request #171 from jdanekrh/jd_destroy_free_typo
alanconway [Tue, 5 Feb 2019 16:58:52 +0000 (11:58 -0500)] 
Merge pull request #171 from jdanekrh/jd_destroy_free_typo

NO-JIRA: outdated `pn_connection_driver_free` reference in doc comment

3 years agoPROTON-1990: C++ credit draining fails to toggle off in 2/3 of possible cases
Cliff Jansen [Sat, 2 Feb 2019 19:00:44 +0000 (11:00 -0800)] 
PROTON-1990: C++ credit draining fails to toggle off in 2/3 of possible cases

3 years agoNO-JIRA: update years in notice file
Robbie Gemmell [Mon, 28 Jan 2019 11:14:31 +0000 (11:14 +0000)] 
NO-JIRA: update years in notice file

3 years agoPROTON-1991: [Python] Tornado example no longer works
Andrew Stitcher [Thu, 20 Dec 2018 22:25:05 +0000 (17:25 -0500)] 
PROTON-1991: [Python] Tornado example no longer works
- Scheduler example seems to have bit rotted
- Small logic error in tornado examples

3 years agoPROTON-1984: Fix pn_data_inspect test to work on 32 bit machines!
Andrew Stitcher [Thu, 20 Dec 2018 17:14:06 +0000 (12:14 -0500)] 
PROTON-1984: Fix pn_data_inspect test to work on 32 bit machines!

3 years agoPROTON-1986: [Python] Make example broker work with anonymous links
Andrew Stitcher [Thu, 20 Dec 2018 03:56:26 +0000 (22:56 -0500)] 
PROTON-1986: [Python] Make example broker work with anonymous links
- If you receive a message on a link with no target address then use the message address

3 years agoPROTON-1985: [Python] Actually make default to listen forever
Andrew Stitcher [Thu, 20 Dec 2018 03:54:33 +0000 (22:54 -0500)] 
PROTON-1985: [Python] Actually make default to listen forever
- Bug in current behaviour such that default ends up throwing every message away

3 years agoPROTON-1984: [c] Avoid O(n^2) complexity in pn_data_inspect
Andrew Stitcher [Wed, 19 Dec 2018 19:45:26 +0000 (14:45 -0500)] 
PROTON-1984: [c] Avoid O(n^2) complexity in pn_data_inspect
- Rework original change to preserve correct stringifying of pn_data_t
- Unfortunately restores some potential O(n^2) behaviour but in many
  fewer cases.

This reverts commit 58ec2b1e54d00fce4a07b7c3c6de2b504b2525ee.

3 years agoPROTON-1984: Some tests for pn_data_inspect
Andrew Stitcher [Wed, 19 Dec 2018 19:42:55 +0000 (14:42 -0500)] 
PROTON-1984: Some tests for pn_data_inspect

3 years agoPROTON-985: [go] Go binding uses monotonic clock
Alan Conway [Tue, 18 Dec 2018 18:03:27 +0000 (13:03 -0500)] 
PROTON-985: [go] Go binding uses monotonic clock

Updated generated code for new pn_proton_tick() signature,
Updated binding to use monotonic time.

3 years agoPROTON-985: [go] Update pn_proton_tick() return type.
Alan Conway [Tue, 18 Dec 2018 18:03:00 +0000 (13:03 -0500)] 
PROTON-985: [go] Update pn_proton_tick() return type.

3 years agoPROTON-985: Modify pn_transport_tick to use a monotonic clock.
Alan Conway [Fri, 14 Dec 2018 19:02:37 +0000 (14:02 -0500)] 
PROTON-985: Modify pn_transport_tick to use a monotonic clock.

3 years agoPROTON-830: trivial README change, testing JIRA commit notifications and GitHub mirro...
Robbie Gemmell [Fri, 14 Dec 2018 11:05:50 +0000 (11:05 +0000)] 
PROTON-830: trivial README change, testing JIRA commit notifications and GitHub mirror after git-wip-us to gitbox migration, ignore.

3 years agoNO-JIRA: outdated `pn_connection_driver_free` reference in doc comment 171/head
Jiri Danek [Wed, 12 Dec 2018 15:33:49 +0000 (16:33 +0100)] 
NO-JIRA: outdated `pn_connection_driver_free` reference in doc comment

3 years agoPROTON-1981: [cpp] timestamp::now returns wrong value.
Alan Conway [Wed, 12 Dec 2018 01:28:24 +0000 (20:28 -0500)] 
PROTON-1981: [cpp] timestamp::now returns wrong value.

Was returning pn_proactor_now() which is monotonic time, fixed to return
wall-clock time.

3 years agoPROTON-1982: C tests written in C++ fail to build if no C++ compiler
Alan Conway [Wed, 12 Dec 2018 00:38:05 +0000 (19:38 -0500)] 
PROTON-1982: C tests written in C++ fail to build if no C++ compiler

Some C library tests are now written in C++, they need to be skipped on platforms
with no C++ compiler rather than failing the build.

3 years agoPROTON-1979: [c] Only allow scalars (non compound types) as descriptors
Andrew Stitcher [Tue, 11 Dec 2018 19:53:35 +0000 (14:53 -0500)] 
PROTON-1979: [c] Only allow scalars (non compound types) as descriptors

3 years agoPROTON-1984: [c] Avoid O(n^2) complexity in pn_data_inspect
Andrew Stitcher [Tue, 11 Dec 2018 19:17:52 +0000 (14:17 -0500)] 
PROTON-1984: [c] Avoid O(n^2) complexity in pn_data_inspect

3 years agoPROTON-1983, PROTON-1805: Allow fuzzer regression tests to use response files
Andrew Stitcher [Fri, 7 Dec 2018 20:28:02 +0000 (15:28 -0500)] 
PROTON-1983, PROTON-1805: Allow fuzzer regression tests to use response files
- Fixed bugs which make the standalone regression runner fail on Windows and Mac
- Allow fuzz tests to build under VS12 & VS10

3 years agoPROTON-1979: [c] Forbid AMQP values that could lead to a nested descriptor type
Andrew Stitcher [Thu, 6 Dec 2018 19:45:47 +0000 (14:45 -0500)] 
PROTON-1979: [c] Forbid AMQP values that could lead to a nested descriptor type
- Any described type descriptors that could lead to a nested described type in the
  descriptor type itself are forbidden as these can lead to indefinite stack use.
- In any event only symbol and ulong are currently valid types for descriptors,
  all other types are reserved although syntactically valid (according to amqp 1.0).

Problem found by oss-fuzz: https://oss-fuzz.com/testcase?key=5920119225057280

3 years agoPROTON-1978: [c] Make disposition performative handling more efficient
Andrew Stitcher [Wed, 5 Dec 2018 18:12:50 +0000 (13:12 -0500)] 
PROTON-1978: [c] Make disposition performative handling more efficient
- Minimise the effort to update deliveries affected by the disposition
  If there are fewer deliveries outstanding than delivery ids in the
  performative then loop through them all to update them.
  Otherwise, loop through the specified delivery ids.
- We have to go through this effort as we don't keep the outstanding
  deliveries sorted by id. Instead they are in a hash table and in a
  separate linked list.

Problem found by oss-fuzz: https://oss-fuzz.com/testcase?key=5118747114209280

3 years agoNO_JIRA: [c] Fix minor proactor test bugs
Alan Conway [Tue, 4 Dec 2018 21:06:45 +0000 (16:06 -0500)] 
NO_JIRA: [c] Fix minor proactor test bugs

Some tests were listening on default AMQP port instead of port 0.
Improved idle-timeout logic for test proactor.

3 years agoPROTON-1959: [cpp] Binary compatible reconnect
Alan Conway [Fri, 30 Nov 2018 19:07:58 +0000 (14:07 -0500)] 
PROTON-1959: [cpp] Binary compatible reconnect

Previous commit f53c7683d7e90363 added new virtual functions to class
messaging_handler: on_connection_start() and on_connection_reconnecting()

This is a binary incompatible change in C++. Linking a new library that calls
these functions with old user code that doesn't implement them will crash.

Removed the new functions, fixed the implementation and user docs to accomplish
the same result using existing on_connection_open() and on_transport_error().

Fixes #170.

3 years agoPROTON-1974: Correctly detect libraries with earlier versions of CMake
vagrant [Thu, 29 Nov 2018 22:34:01 +0000 (22:34 +0000)] 
PROTON-1974: Correctly detect libraries with earlier versions of CMake

Patch-from: Jiri Daněk

3 years agoPROTON-1973: Make proton_tests runnable as a module
Andrew Stitcher [Tue, 27 Nov 2018 20:42:20 +0000 (15:42 -0500)] 
PROTON-1973: Make proton_tests runnable as a module

3 years agoPROTON-1970: Allow proton-core to be compiled by msvc9
Andrew Stitcher [Wed, 21 Nov 2018 22:24:34 +0000 (17:24 -0500)] 
PROTON-1970: Allow proton-core to be compiled by msvc9
- This is needed to compile for python2.7 setup.py

3 years agoPROTON-1969: Explicitly use python to run the tox test
Andrew Stitcher [Wed, 21 Nov 2018 15:37:27 +0000 (10:37 -0500)] 
PROTON-1969: Explicitly use python to run the tox test

3 years agoPROTON-1968: Fix ssl_stub compiling as C++
Andrew Stitcher [Wed, 21 Nov 2018 15:22:26 +0000 (10:22 -0500)] 
PROTON-1968: Fix ssl_stub compiling as C++

3 years agoPROTON-1887: [c] fix signed/unsigned warning
Alan Conway [Tue, 20 Nov 2018 14:44:18 +0000 (09:44 -0500)] 
PROTON-1887: [c] fix signed/unsigned warning

3 years agoPROTON-1887: [c] Convert C tests to use Catch2 harness.
Alan Conway [Wed, 14 Nov 2018 22:12:51 +0000 (17:12 -0500)] 
PROTON-1887: [c] Convert C tests to use Catch2 harness.

Convert c/tests from home-baked test macros to the Catch2 test harness.
We are using version 1.x until we can move on from supporting C++03.

Added files:

- catch.hpp - the Catch2 version 1.x framework in a single header.
- catch_extra.hpp - added Catch::Matcher support for C-string comparisons

- pn_test.hpp/.cpp - tools for testing the core library
  - auto_free<> - scoped freeing of pn_xxx_t*
  - matchers to check pn_condition/error_t with useful output
  - driver class to pump a pn_connection_driver_t and check events
    - trivial in-memory copy transport, no networking needed.
- pn_test_proactor.hpp/cpp - tools for testing the proactor library
  - proactor to pump a pn_proactor and check events.
  - same handler as driver above.

Renamed tests files: c/tests/*.c => c/tests/*_test.cpp

Tests are now linked into 3 executables:

- c-core-test - tests for libqpid-proton-core API
- c-extra-test - tests for the "extra" deprecated API in libqpid-proton
- c-proactor-test - tests for the proactor API in libqpid-proton-proactor

Individual tests or subsets can be run via command line arguments, run with
"-h" for a summary, or see https://github.com/catchorg/Catch2/blob/Catch1.x/docs/command-line.md

NOTE: Catch2 allows multiple "tags" to be associated with each test to easily
define different test sets. We're not using this feature yet, we could use it to
identify a fast self-test set, a long-running stress test set etc.

3 years agoPROTON-1959: [cpp] API additions to simplify reconnect
Alan Conway [Tue, 30 Oct 2018 19:14:04 +0000 (15:14 -0400)] 
PROTON-1959: [cpp] API additions to simplify reconnect

messaging_handler::on_connection_start() - initial, exactly once event
messaging_handler::on_connection_reconnecting() - disconnected with auto-reconnect pending
bool connection::reconnected() - connection has been auto-reconnected

Added connection life-cycle doc to the messaging_handler class API doc.

3 years agoPROTON-1959: [cpp] Zero pn_listener_t* in proton::listener::stop()
Alan Conway [Tue, 30 Oct 2018 19:01:07 +0000 (15:01 -0400)] 
PROTON-1959: [cpp] Zero pn_listener_t* in  proton::listener::stop()

Pointer becomes invalid sometime after stop() so must not be used again.

3 years agoPROTON-1959: [c epoll] Fix crash in some reconnect scenarios.
Alan Conway [Fri, 26 Oct 2018 21:57:12 +0000 (17:57 -0400)] 
PROTON-1959: [c epoll] Fix crash in some reconnect scenarios.

Proactor should release driver->collector *not* pn_connection_collector()
as the driver always keeps a valid collector pointer, but the connection may be
NULL if it has been released for reconnect.

3 years agoPROTON-1959: [cpp] Update simple_send example to re-send on reconnect
Alan Conway [Tue, 30 Oct 2018 19:35:35 +0000 (15:35 -0400)] 
PROTON-1959: [cpp] Update simple_send example to re-send on reconnect

3 years agoNO-JIRA: [cpp] Minor API doc cleanup
Alan Conway [Tue, 30 Oct 2018 19:08:50 +0000 (15:08 -0400)] 
NO-JIRA: [cpp] Minor API doc cleanup

- Remove API doc references to non-existent page "endpoint_lifecycle"
- Put extra doc pages in sensible order using pages.dox

3 years agoNO-JIRA: [go] Remove testing.TB.Helper(), only available from Go 1.9
Alan Conway [Wed, 24 Oct 2018 00:48:13 +0000 (20:48 -0400)] 
NO-JIRA: [go] Remove testing.TB.Helper(), only available from Go 1.9

3 years agoNO-JIRA: [go] common internal/test package for qpid.apache.org
Alan Conway [Fri, 12 Oct 2018 16:02:24 +0000 (12:02 -0400)] 
NO-JIRA: [go] common internal/test package for qpid.apache.org

Common utilities to simplify test code.
Updated package tests to use the common code.

3 years agoPROTON-1910: [go] fix faulty message test
Alan Conway [Fri, 12 Oct 2018 13:25:38 +0000 (09:25 -0400)] 
PROTON-1910: [go] fix faulty message test

3 years agoNO-JIRA: [go] Clean up warnings from `go vet -shadow`
Alan Conway [Thu, 11 Oct 2018 22:56:23 +0000 (18:56 -0400)] 
NO-JIRA: [go] Clean up warnings from `go vet -shadow`

3 years agoNO-JIRA: [go] example of using a selector
Alan Conway [Fri, 19 Oct 2018 23:26:47 +0000 (19:26 -0400)] 
NO-JIRA: [go] example of using a selector

3 years agoNO-JIRA: [go] Check Sender.Error() before sending
Alan Conway [Tue, 23 Oct 2018 22:02:48 +0000 (18:02 -0400)] 
NO-JIRA: [go] Check Sender.Error() before sending

3 years agoNO-JIRA: [c,cpp] Fix example scripts for old python and CMake
Alan Conway [Tue, 16 Oct 2018 16:34:25 +0000 (12:34 -0400)] 
NO-JIRA: [c,cpp] Fix example scripts for old python and CMake

3 years agoNO-JIRA: [c,cpp] fix monkey-patch of python 2.7 unittest features for python 2.6
Alan Conway [Tue, 16 Oct 2018 14:09:36 +0000 (10:09 -0400)] 
NO-JIRA: [c,cpp] fix monkey-patch of python 2.7 unittest features for python 2.6

Don't apply patch on versions that have the feature.

3 years agoNO-JIRA: [go] Avoid use of testing.TB.Name() for older Go versions
Alan Conway [Mon, 15 Oct 2018 23:46:55 +0000 (19:46 -0400)] 
NO-JIRA: [go] Avoid use of testing.TB.Name() for older Go versions

3 years agoNO-JIRA: [c,cpp] monkey-patch python 2.7 unittest features for python 2.6
Alan Conway [Mon, 15 Oct 2018 18:46:22 +0000 (14:46 -0400)] 
NO-JIRA: [c,cpp] monkey-patch python 2.7 unittest features for python 2.6

3 years agoNO-JIRA: Benchmark script for comparing examples in different languages
Alan Conway [Mon, 15 Oct 2018 14:23:44 +0000 (10:23 -0400)] 
NO-JIRA: Benchmark script for comparing examples in different languages

Crude but effective throughput comparison that can run and combine examples
in different languages.

3 years agoNO-JIRA: [go] example receiver grants credit like other examples
Alan Conway [Mon, 15 Oct 2018 14:22:54 +0000 (10:22 -0400)] 
NO-JIRA: [go] example receiver grants credit like other examples

Default to N credits where N is expected message count.
-prefetch option specifies a credit window instead

3 years ago PROTON-1910: [go] move message encode/decode to handler thread
Alan Conway [Thu, 11 Oct 2018 19:23:00 +0000 (15:23 -0400)] 
 PROTON-1910: [go] move message encode/decode to handler thread

3 years agoPROTON-1910: [go] native Message implementation
Alan Conway [Thu, 11 Oct 2018 19:20:23 +0000 (15:20 -0400)] 
PROTON-1910: [go] native Message implementation

3 years agoPROTON-1910: [go] proton.Link allow sending/receiving message as bytes
Alan Conway [Thu, 11 Oct 2018 19:19:00 +0000 (15:19 -0400)] 
PROTON-1910: [go] proton.Link allow sending/receiving message as bytes

3 years agoPROTON-1956: [go] server does not close transport on unexpected disconnect
Alan Conway [Tue, 9 Oct 2018 20:30:05 +0000 (16:30 -0400)] 
PROTON-1956: [go] server does not close transport on unexpected disconnect

3 years agoNO-JIRA: Map Go errors to amqp::internal-error
Alan Conway [Fri, 5 Oct 2018 21:05:16 +0000 (17:05 -0400)] 
NO-JIRA: Map Go errors to amqp::internal-error

Previously using go error type name which is not useful, and often empty.

3 years agoPROTON-1955: [go] incorrect conversion between Go time and AMQP time
Alan Conway [Fri, 5 Oct 2018 19:38:48 +0000 (15:38 -0400)] 
PROTON-1955: [go] incorrect conversion between Go time and AMQP time

3 years agoNO-JIRA: longer timeout in heartbeat test, false failures
Alan Conway [Wed, 10 Oct 2018 20:12:11 +0000 (16:12 -0400)] 
NO-JIRA: longer timeout in heartbeat test, false failures

3 years agoNO-JIRA: Fix go vet -v warnings, minor typos
Alan Conway [Fri, 5 Oct 2018 19:38:14 +0000 (15:38 -0400)] 
NO-JIRA: Fix go vet -v warnings, minor typos

3 years agoPROTON-1952: [go] Server connection fails to authenticate
Alan Conway [Fri, 5 Oct 2018 16:02:28 +0000 (12:02 -0400)] 
PROTON-1952: [go] Server connection fails to authenticate

Problem: If the Server() option came after SASL options in the option list, the
server hangs in authentication.

Solution: NewConnection panics if there is a Server() option that is not the first
option in the list.

3 years agoPROTON-1954: [go] Container should default to random container-id
Alan Conway [Fri, 21 Sep 2018 00:53:14 +0000 (20:53 -0400)] 
PROTON-1954: [go] Container should default to random container-id

- default to random container-id
- add ContainerId option to set container ID without a Container object
- set remote heartbeat on incoming connection settings

3 years agoPROTON-1910: [go] test refactor and benchmarks
Alan Conway [Fri, 21 Sep 2018 04:51:45 +0000 (00:51 -0400)] 
PROTON-1910: [go] test refactor and benchmarks

- Simplify commmon test tools, move to commmon_test.go
- Use net.Pipe for most tests, more efficient than a full network socket
- Added simple benchmarks

3 years agoPROTON-1953: [go] occasional client/server hang with high volume of messages
Alan Conway [Wed, 10 Oct 2018 20:09:33 +0000 (16:09 -0400)] 
PROTON-1953: [go] occasional client/server hang with high volume of messages

Due to race/deadlock in read/write and engine main  goroutine. Simplified:
- start read/write goroutines as needed
- handle read/write completion via Inject(), no special channels

3 years agoPROTON-1944, PROTON-1926: update versions for 0.27.0-SNAPSHOT
Robbie Gemmell [Thu, 4 Oct 2018 10:15:20 +0000 (11:15 +0100)] 
PROTON-1944, PROTON-1926: update versions for 0.27.0-SNAPSHOT

3 years agoPROTON-1926, PROTON-1944: restore versions for 0.26.0-rc2 0.26.0 0.26.0-rc2
Robbie Gemmell [Thu, 4 Oct 2018 10:09:02 +0000 (11:09 +0100)] 
PROTON-1926, PROTON-1944: restore versions for 0.26.0-rc2

This reverts commit 1b554aad70452d6501cb3e13a6c10186d14e9dc9.

3 years agoNO-JIRA: merge update to Travis config to resolve pip issues. This closes #161.
Robbie Gemmell [Thu, 4 Oct 2018 08:33:05 +0000 (09:33 +0100)] 
NO-JIRA: merge update to Travis config to resolve pip issues. This closes #161.

3 years agoNO-JIRA: Removed python upgrade for xcode7.3 build to fix pip issue 161/head
Roddie Kieley [Wed, 3 Oct 2018 18:43:29 +0000 (16:13 -0230)] 
NO-JIRA: Removed python upgrade for xcode7.3 build to fix pip issue

3 years agoNO-JIRA: call out the repo cleanup step
Robbie Gemmell [Wed, 3 Oct 2018 13:39:46 +0000 (14:39 +0100)] 
NO-JIRA: call out the repo cleanup step

3 years agoPROTON-1974: [cpp] modify to work with older jsoncpp (1.7.4)
Alan Conway [Tue, 2 Oct 2018 15:40:16 +0000 (11:40 -0400)] 
PROTON-1974: [cpp] modify to work with older jsoncpp (1.7.4)

- add jsoncpp to travis packages for CI testing
- fix string conversions - rules changed between 1.7.4 and 1.8
- better error handling/reporting

3 years agoPROTON-1947: [cpp] not locating jsoncpp library on some platforms
Alan Conway [Tue, 2 Oct 2018 14:54:50 +0000 (10:54 -0400)] 
PROTON-1947: [cpp] not locating jsoncpp library on some platforms

CMake was not adding the INCLUDE_DIR locations found by FindJsonCpp
so a non-standard installation would be found but cause a compile failure.

3 years agoPROTON-1946: [cpp] connection config parser incorrect defaults
Alan Conway [Mon, 1 Oct 2018 18:54:35 +0000 (14:54 -0400)] 
PROTON-1946: [cpp] connection config parser incorrect defaults

- Change default "host" to "localhost" (was "")
- Only throw proton::error, don't leak jsoncpp exceptions
- Add tests for SASL/TLS behavior
- Treat explicit "null" valued field as equivalent to a missing field

3 years agoPROTON-1944, PROTON-1926: update versions for 0.27.0-SNAPSHOT
Robbie Gemmell [Mon, 1 Oct 2018 11:50:30 +0000 (12:50 +0100)] 
PROTON-1944, PROTON-1926: update versions for 0.27.0-SNAPSHOT

3 years agoPROTON-1926: update versions for 0.26.0-rc1 0.26.0-rc1
Robbie Gemmell [Mon, 1 Oct 2018 11:31:26 +0000 (12:31 +0100)] 
PROTON-1926: update versions for 0.26.0-rc1

3 years agoPROTON-1926: bump so versions based on review by Justin, Andrew, Alan, and Cliff.
Robbie Gemmell [Mon, 1 Oct 2018 11:08:14 +0000 (12:08 +0100)] 
PROTON-1926: bump so versions based on review by Justin, Andrew, Alan, and Cliff.

3 years agoPartially revert "NO-JIRA: Remove unused deprecated reactor functionality"
Andrew Stitcher [Thu, 27 Sep 2018 15:52:17 +0000 (11:52 -0400)] 
Partially revert "NO-JIRA: Remove unused deprecated reactor functionality"
- Retain the symbols for linkage, but remove them from the header file

This reverts commit 57f5ec14aebe374d718cbb87c079a7b56cb6b705.

3 years agoMerge branch 'master' of https://git-wip-us.apache.org/repos/asf/qpid-proton
Kim van der Riet [Fri, 28 Sep 2018 18:28:15 +0000 (14:28 -0400)] 
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/qpid-proton

3 years agoNO_JIRA: Minor typo fix for C++ codec tests which change type long for long long.
Kim van der Riet [Fri, 28 Sep 2018 18:26:58 +0000 (14:26 -0400)] 
NO_JIRA: Minor typo fix for C++ codec tests which change type long for long long.

3 years agoNO-JIRA: [cpp] fix example race condition, causing occasional hang
Alan Conway [Fri, 28 Sep 2018 15:11:41 +0000 (11:11 -0400)] 
NO-JIRA: [cpp] fix example race condition, causing occasional hang

3 years agoPROTON-1940: [c] normalize encoding of multiple="true" fields 159/head
Alan Conway [Mon, 24 Sep 2018 15:41:03 +0000 (11:41 -0400)] 
PROTON-1940: [c] normalize encoding of multiple="true" fields

Append src to data after normalizing for "multiple" field encoding.

AMQP composite field definitions can be declared "multiple", see:

- http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-types-v1.0-os.html#doc-idp115568
- http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-types-v1.0-os.html#section-composite-type-representation

Multiple fields allow redundant encoding of two cases:

1. empty: null or an empty array.
2. single-value: direct encoding of value, or array with one element

For encoding compactness and inter-operability, normalize multiple
field values to always use null for empty, and direct encoding for
single value.

3 years agoPROTON-1942: [c] decoding a message does not set the inferred flag.
Alan Conway [Thu, 27 Sep 2018 18:04:48 +0000 (14:04 -0400)] 
PROTON-1942: [c] decoding a message does not set the inferred flag.