Permalink
Commits on Mar 8, 2014
  1. big roles and responsibilities refactor

    Protocol - provides an interface for reading and writing "records"
    transforming them from/to length encoded "packets"
    
    Connection - eventmachine or socket now only provides methods for
    connecting with a timeout and reading with a timeout
    
    Session - does all the hard work of managing connection state,
    queuing requests, processing replies and watches etc and nothing else.
    Uses an injected connection factory to create connections and then reads
    and writes records using the Protocol methods only.
    
    Operation/OperationType - factors out knowledge of operations, op_codes,
    request and response classes etc previously scattered throughout client
    and session.
    
    Client -  provides the ruby interface to zookeeper operations, including
    managing any chroot path conversions, and duck typing watchers.
    
    The purpose of this is to make things more testable, particularly for
    error conditions that are hard to reproduce with a local ZK server.
    committed Mar 8, 2014
Commits on Feb 11, 2014
  1. version bump

    committed Feb 11, 2014
Commits on Jul 27, 2013
  1. empathy and bundler

    Using bundler config for all gem related stuff instead of hoe.
    
    Replace strand with new empathy implementation for using zkruby with
    eventmachine
    committed Jul 27, 2013
Commits on Mar 5, 2012
  1. Refactor strand usage for eventmachine binding

    Implementation now works like rubyio, use a single
    event strand to process callbacks/watchers instead
    of separate strands per event
    Old model was broken for nested synchronous event
    This model is much more performant
    committed Mar 5, 2012
Commits on Feb 24, 2012
  1. wrapped op bugfix

    committed Feb 24, 2012
Commits on Feb 23, 2012
Commits on Feb 12, 2012
  1. Implement pass and use in rmpath

    Processing long lists of children can block the event machine
    or even hold a thread long enough to allow a session to expire
    ZK.pass simply called Thread.pass (for rubyio) or Strand.pass (eventmachine)
    to allow the session to stay alive
    TODO: work out the optimal point at which pass is required
    committed Feb 12, 2012
Commits on Feb 9, 2012
  1. bump version

    committed Feb 9, 2012
Commits on Feb 7, 2012
Commits on Feb 6, 2012
  1. doc fix

    committed Feb 6, 2012
  2. fix rake jute under JRuby

    committed Feb 6, 2012
Commits on Feb 5, 2012
  1. bump version

    committed Feb 5, 2012
  2. make sure lib/jute exists

    committed Feb 5, 2012
Commits on Feb 3, 2012
  1. bump version to 3.4.2.0

    committed Feb 3, 2012
  2. Implement multi on 3.4

    committed Feb 3, 2012
Commits on Jan 27, 2012
Commits on Jan 24, 2012
Commits on Jan 23, 2012
  1. Refactored error callbacks and exceptions

    Use "strand" library for thread like behaviour in EM
    committed Jan 23, 2012
Commits on Dec 29, 2011
Commits on Dec 19, 2011
Commits on Dec 18, 2011
  1. remove unused code

    committed Dec 18, 2011
Commits on Dec 17, 2011