Permalink
Commits on Jun 11, 2017
  1. gem 1.4.4 artifacts.

    gmallard committed Jun 11, 2017
  2. Prep for 1.4.4

    gmallard committed Jun 11, 2017
Commits on Jun 7, 2017
  1. Ensure IO#gets exits in a reasonable time

    reidmv committed with MikaelSmith Jun 1, 2017
    According to the notes on heartbeats, `max_hbrlck_fails` should be
    enabled in order to determine when heartbeats stop arriving. This is
    required because the receive thread of the MCO daemon spends most of its
    time waiting for something to come in over the wire. That ties up the
    "read lock" used to provide exclusive access to the underlying network
    socket.
    
    However, the blocking receive should consume heartbeats and update the
    "last received" timestamp (`@lr`). The heartbeat read thread also
    consumes pings coming in over the wire in case the process is not
    blocking on receive.
    
    Normal operation means that a missed hbrlck is normal, but two in a row
    should be abnormal (the heartbeat thread may try to read and get locked,
    but the receive thread should read the heartbeat before the heartbeat
    thread resumes - networking timing could impact this in bad ways - and
    reset the "last received" timestamp which will trigger resetting the
    `read_lock_count` and `lock_fail_count` the next time the heartbeat
    thread wakes).
    
    When the `lock_fail_count` exceeds `@max_hbrlck_fails`, the heartbeat
    thread closes the socket and kills the heartbeat threads. The
    expectation is that this should cause the `IO#gets` call in the receive
    call to return. That doesn't happen until TCP timeouts occur, which can
    take minutes or hours. When the TCP timeout occurs, it appears to leave
    the main thread in an unexpected state that sometimes results in SIGABRT
    and is unreachable via the broker.
    
    To exit `gets` early, trigger an exception in the `receive` thread.
    That interrupts the `gets` call and is caught in the `transmit` or
    `__old_receive` method and initiates a reconnect.
Commits on Mar 26, 2017
  1. Fix specs, they broke with #137 fix.

    gmallard committed Mar 26, 2017
Commits on Mar 25, 2017
  1. Merge branch 'devcon' into dev

    gmallard committed Mar 25, 2017
  2. Merge pull request #140 from traylenator/expect

    gmallard committed on GitHub Mar 25, 2017
    rspec migrate from deprecated is_expected.to -> expect
Commits on Mar 23, 2017
  1. rspec migrate from deprecated is_expected.to -> expect

    traylenator committed Mar 23, 2017
    Resolves these errors:
    
    ```
      1) Stomp::Client (used with custom headers) #begin behaves like argument-safe method given headers hash is immutable
         Failure/Error: is_expected.to match(original_headers)
         NameError:
           undefined local variable or method `is_expected' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_14::Nested_1::Nested_1::Nested_1:0x0055b53e4ab778>
           Did you mean?  expect
         Shared Example Group: "argument-safe method" called from ./spec/client_spec.rb:432
         # ./spec/client_spec.rb:422:in `block (5 levels) in <top (required)>'
    ```
    
    With these rspec 2 versions.
    
    rubygem-rspec2-core-2.14.8-7.fc24.noarch
    rubygem-rspec2-mocks-2.14.6-5.fc24.1.noarch
    rubygem-rspec2-2.14.1-5.fc24.noarch
    rubygem-rspec2-expectations-2.14.5-8.fc24.1.noarch
Commits on Feb 21, 2017
Commits on Feb 20, 2017
  1. Issue 137, MaxReconnectAttempts:

    gmallard committed Feb 20, 2017
    MaxRecnnectAttempts is now issued properly for:
    
    - Connection producers
    - Connection consumers
    - Client Producers
    - Client consumers
Commits on Feb 18, 2017
  1. Patch level bump.

    gmallard committed Feb 18, 2017
Commits on Feb 16, 2017
Commits on Feb 14, 2017
Commits on Feb 4, 2017
Commits on Feb 3, 2017
  1. Comments update.

    gmallard committed Feb 3, 2017
Commits on Jan 31, 2017
Commits on Jan 28, 2017
Commits on Oct 26, 2016
  1. Merge pull request #135 from rhadoo/dev

    gmallard committed on GitHub Oct 26, 2016
    Add suppress_content_type header support, set this to supress content…
Commits on Oct 25, 2016
  1. Add suppress_content_type header support, set this to supress content…

    Raducu Deaconu committed Oct 25, 2016
    …_type header
Commits on Sep 18, 2016
  1. Finish effort to add Artemis support to unit tests:

    gmallard committed Sep 18, 2016
    Like most brokers, Artemis has unique behaviors that
    tests need to be customized for.
    
    Current local Artemis is 1.5.0-SNAPSHOT.
Commits on Sep 17, 2016
  1. Fix subtle poor behavior of suppress_content_length:

    gmallard committed Sep 17, 2016
    The suppress_content_length message header has been
    supported since Wed Dec 23 16:23:03 2009 -0200.
    
    Since then the implementation has been wasteful with
    unneeded and unrequired functionality.
    
    Gem behavior has been as follows.
    
    Suppose the client:
    
    -- Asks for suppress_content_length and
    -- Supplied a message body of "abc\00def"
    
    The gem correctly did not add a content-length header.
    However, the entire seven bytes (in the above example)
    was written to the TCP connection's buffer.
    
    This can cause errors to be generated by some brokers,
    and the last three bytes (in this example) do not
    need to be written (suppose it were 3M bytes).
    
    This behavior was uncovered during initial testing with
    Artemis.
    
    Continuing with that example, this commit changes gem
    behavior to:
    - Only write "abc\00" to the connection buffer
    - Ignore the bytes "def"
  2. Step 1 of Artemis support in unit tests. Please note:

    gmallard committed Sep 17, 2016
    1) Full support of Artemis is not complete yet.
    2) It is apparent that writing a broker agnostic
       application might be challenging with Artemis.
    3) Read the Artemis documentation, the STOMP section.
       Particularly note the subsection titled "Limitations."
    4) If you intend to use heart beats, make sure you
       understand the Artemis implementation of same.
Commits on Aug 29, 2016
  1. Ignore more bundler artifacts.

    gmallard committed Aug 29, 2016
Commits on Aug 21, 2016
  1. Prep 1.4.3, fix broken install.

    gmallard committed Aug 21, 2016
  2. Remove Gemfile, at least for now. See:

    gmallard committed Aug 21, 2016
    - #133
    - #134
    
    for discussion and thoughts about this.
  3. Start next version round.

    gmallard committed Aug 21, 2016
  4. Version 1.4.2. Details:

    gmallard committed Aug 21, 2016
    * dev:
      1.4.2 prep - stomp.gemspec
      1.4.2 prep - version.rb
      1.4.2 prep - README.md
      1.4.2 prep - CHANGELOG.md
      Add unit test helper script:
      fixup! Fix a memory leak in receipt implementation
      Fix a memory leak in receipt implementation
      Add a basic Gemfile
      one test uses SSL, and STOMP_TESTSSL flag should enable all SSL tests
      fix build_subscription_id - symbol and string were mixed up
      cleanup: remove commented test line and unnecessary space (align lines)
      namings
      Stomp::Client now does not modify given headers hash
      spec for Stomp::Client - check that headers passed to connection contain required values as well as given custom and that given hash is not modified
      Address issue #124 with additional RDOC.
      Refine SSL examples.