protobuf 2.8.0.beta8-java → 2.8.0.beta9-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/protobuf/cli.rb +4 -2
 - data/lib/protobuf/lifecycle.rb +34 -0
 - data/lib/protobuf/rpc/servers/zmq/server.rb +3 -1
 - data/lib/protobuf/rpc/servers/zmq_runner.rb +3 -2
 - data/lib/protobuf/version.rb +1 -1
 - data/spec/lib/protobuf/cli_spec.rb +17 -3
 - data/spec/lib/protobuf/lifecycle_spec.rb +70 -0
 - metadata +4 -2
 
    
        data/lib/protobuf/cli.rb
    CHANGED
    
    | 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'thor'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'protobuf/version'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'protobuf/lifecycle'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'protobuf/logger'
         
     | 
| 
       4 
5 
     | 
    
         
             
            require 'protobuf/rpc/servers/evented_runner'
         
     | 
| 
       5 
6 
     | 
    
         
             
            require 'protobuf/rpc/servers/socket_runner'
         
     | 
| 
         @@ -87,7 +88,7 @@ module Protobuf 
     | 
|
| 
       87 
88 
     | 
    
         
             
                  def configure_logger
         
     | 
| 
       88 
89 
     | 
    
         
             
                    debug_say('Configuring logger')
         
     | 
| 
       89 
90 
     | 
    
         
             
                    ::Protobuf::Logger.configure({ :file => options.log || STDOUT,
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
      
 91 
     | 
    
         
            +
                                                 :level => options.debug? ? ::Logger::DEBUG : options.level })
         
     | 
| 
       91 
92 
     | 
    
         | 
| 
       92 
93 
     | 
    
         
             
                    # Debug output the server options to the log file.
         
     | 
| 
       93 
94 
     | 
    
         
             
                    ::Protobuf::Logger.debug { 'Debugging options:' }
         
     | 
| 
         @@ -242,9 +243,10 @@ module Protobuf 
     | 
|
| 
       242 
243 
     | 
    
         
             
                      ::Protobuf::Logger.info {
         
     | 
| 
       243 
244 
     | 
    
         
             
                        "pid #{::Process.pid} -- #{@runner_mode} RPC Server listening at #{options.host}:#{options.port}"
         
     | 
| 
       244 
245 
     | 
    
         
             
                      }
         
     | 
| 
      
 246 
     | 
    
         
            +
             
     | 
| 
      
 247 
     | 
    
         
            +
                      ::Protobuf::Lifecycle.trigger( "after_server_bind" )
         
     | 
| 
       245 
248 
     | 
    
         
             
                    end
         
     | 
| 
       246 
249 
     | 
    
         
             
                  end
         
     | 
| 
       247 
250 
     | 
    
         
             
                end
         
     | 
| 
       248 
251 
     | 
    
         
             
              end
         
     | 
| 
       249 
252 
     | 
    
         
             
            end
         
     | 
| 
       250 
     | 
    
         
            -
             
     | 
| 
         @@ -0,0 +1,34 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Protobuf
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Lifecycle
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
                def self.register( event_name, &blk )
         
     | 
| 
      
 5 
     | 
    
         
            +
                  raise "Lifecycle register must have a block" unless block_given?
         
     | 
| 
      
 6 
     | 
    
         
            +
                  event_name = normalized_event_name( event_name )
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  lifecycle_events[ event_name ] ||= []
         
     | 
| 
      
 9 
     | 
    
         
            +
                  lifecycle_events[ event_name ] << blk
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                def self.trigger( event_name )
         
     | 
| 
      
 13 
     | 
    
         
            +
                  event_name = normalized_event_name( event_name )
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  if lifecycle_events.has_key?( event_name )
         
     | 
| 
      
 16 
     | 
    
         
            +
                    lifecycle_events[ event_name ].each do |block|
         
     | 
| 
      
 17 
     | 
    
         
            +
                      block.call
         
     | 
| 
      
 18 
     | 
    
         
            +
                    end
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
                
         
     | 
| 
      
 22 
     | 
    
         
            +
                def self.normalized_event_name( event_name )
         
     | 
| 
      
 23 
     | 
    
         
            +
                  return "#{event_name}".downcase
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                class << self
         
     | 
| 
      
 27 
     | 
    
         
            +
                  attr_accessor :lifecycle_events
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  alias_method :on, :register
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                @lifecycle_events ||= {}
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -167,8 +167,10 @@ module Protobuf 
     | 
|
| 
       167 
167 
     | 
    
         | 
| 
       168 
168 
     | 
    
         
             
                      start_broker unless brokerless?
         
     | 
| 
       169 
169 
     | 
    
         
             
                      start_missing_workers
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
                      yield if block_given? # runs on startup
         
     | 
| 
       170 
172 
     | 
    
         
             
                      wait_for_shutdown_signal
         
     | 
| 
       171 
     | 
    
         
            -
                      broadcast_flatline if broadcast_beacons?
         
     | 
| 
      
 173 
     | 
    
         
            +
                      broadcast_flatline if broadcast_beacons? 
         
     | 
| 
       172 
174 
     | 
    
         
             
                      Thread.pass until reap_dead_workers.empty?
         
     | 
| 
       173 
175 
     | 
    
         
             
                      @broker.join unless brokerless?
         
     | 
| 
       174 
176 
     | 
    
         
             
                    ensure
         
     | 
    
        data/lib/protobuf/version.rb
    CHANGED
    
    
| 
         @@ -7,9 +7,23 @@ describe ::Protobuf::CLI do 
     | 
|
| 
       7 
7 
     | 
    
         
             
                File.expand_path('../../../support/test_app_file.rb', __FILE__)
         
     | 
| 
       8 
8 
     | 
    
         
             
              end
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
     | 
    
         
            -
              let(:sock_runner) {  
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
      
 10 
     | 
    
         
            +
              let(:sock_runner) { 
         
     | 
| 
      
 11 
     | 
    
         
            +
                runner = double("SocketRunner", :register_signals => nil)
         
     | 
| 
      
 12 
     | 
    
         
            +
                runner.stub(:run) { ::Protobuf::Lifecycle.trigger( "after_server_bind" ) }
         
     | 
| 
      
 13 
     | 
    
         
            +
                runner
         
     | 
| 
      
 14 
     | 
    
         
            +
              }
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              let(:zmq_runner) { 
         
     | 
| 
      
 17 
     | 
    
         
            +
                runner = double "ZmqRunner", register_signals: nil
         
     | 
| 
      
 18 
     | 
    
         
            +
                runner.stub(:run) { ::Protobuf::Lifecycle.trigger( "after_server_bind" ) }
         
     | 
| 
      
 19 
     | 
    
         
            +
                runner
         
     | 
| 
      
 20 
     | 
    
         
            +
              }
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              let(:evented_runner) { 
         
     | 
| 
      
 23 
     | 
    
         
            +
                runner = double "EventedRunner", register_signals: nil
         
     | 
| 
      
 24 
     | 
    
         
            +
                runner.stub(:run) { ::Protobuf::Lifecycle.trigger( "after_server_bind" ) }
         
     | 
| 
      
 25 
     | 
    
         
            +
                runner
         
     | 
| 
      
 26 
     | 
    
         
            +
              }
         
     | 
| 
       13 
27 
     | 
    
         | 
| 
       14 
28 
     | 
    
         
             
              before(:each) do
         
     | 
| 
       15 
29 
     | 
    
         
             
                ::Protobuf::Rpc::SocketRunner.stub(:new) { sock_runner }
         
     | 
| 
         @@ -0,0 +1,70 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'protobuf/lifecycle'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            describe ::Protobuf::Lifecycle do
         
     | 
| 
      
 5 
     | 
    
         
            +
              subject { described_class }
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              before(:each) do
         
     | 
| 
      
 8 
     | 
    
         
            +
                described_class.lifecycle_events = {}
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              it "registers a string as the event_name" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                expect {
         
     | 
| 
      
 13 
     | 
    
         
            +
                  subject.register("something") do
         
     | 
| 
      
 14 
     | 
    
         
            +
                    true
         
     | 
| 
      
 15 
     | 
    
         
            +
                  end
         
     | 
| 
      
 16 
     | 
    
         
            +
                }.to change { subject.lifecycle_events.size }.by(1)
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              it "registers a symbol as the event_name" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                expect {
         
     | 
| 
      
 21 
     | 
    
         
            +
                  subject.register("something") do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    true
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                }.to change { subject.lifecycle_events.size }.by(1)
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              it "only registers blocks for event callbacks" do
         
     | 
| 
      
 28 
     | 
    
         
            +
                expect {
         
     | 
| 
      
 29 
     | 
    
         
            +
                  subject.register("something")
         
     | 
| 
      
 30 
     | 
    
         
            +
                }.to raise_error( /block/ ) 
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              it "calls the registered block when triggered" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                this = nil
         
     | 
| 
      
 35 
     | 
    
         
            +
                subject.register("this") do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  this = "not nil"
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                subject.trigger("this")
         
     | 
| 
      
 40 
     | 
    
         
            +
                this.should_not be_nil
         
     | 
| 
      
 41 
     | 
    
         
            +
                this.should eq("not nil")
         
     | 
| 
      
 42 
     | 
    
         
            +
              end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
              it "calls multiple registered blocks when triggered" do
         
     | 
| 
      
 45 
     | 
    
         
            +
                this = nil
         
     | 
| 
      
 46 
     | 
    
         
            +
                that = nil
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                subject.register("this") do
         
     | 
| 
      
 49 
     | 
    
         
            +
                  this = "not nil"
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                subject.register("this") do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  that = "not nil"
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                subject.trigger("this")
         
     | 
| 
      
 57 
     | 
    
         
            +
                this.should_not be_nil
         
     | 
| 
      
 58 
     | 
    
         
            +
                this.should eq("not nil")
         
     | 
| 
      
 59 
     | 
    
         
            +
                that.should_not be_nil
         
     | 
| 
      
 60 
     | 
    
         
            +
                that.should eq("not nil")
         
     | 
| 
      
 61 
     | 
    
         
            +
              end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
              context "normalized event names" do
         
     | 
| 
      
 64 
     | 
    
         
            +
                specify { subject.normalized_event_name(:derp).should eq("derp") }
         
     | 
| 
      
 65 
     | 
    
         
            +
                specify { subject.normalized_event_name(:Derp).should eq("derp") }
         
     | 
| 
      
 66 
     | 
    
         
            +
                specify { subject.normalized_event_name("DERP").should eq("derp") }
         
     | 
| 
      
 67 
     | 
    
         
            +
                specify { subject.normalized_event_name("derp").should eq("derp") }
         
     | 
| 
      
 68 
     | 
    
         
            +
              end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            name: protobuf
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
4 
     | 
    
         
             
              prerelease: 6
         
     | 
| 
       5 
     | 
    
         
            -
              version: 2.8.0. 
     | 
| 
      
 5 
     | 
    
         
            +
              version: 2.8.0.beta9
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: java
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
       8 
8 
     | 
    
         
             
            - BJ Neilsen
         
     | 
| 
         @@ -10,7 +10,7 @@ authors: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            autorequire:
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date: 2013-07- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2013-07-19 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: activesupport
         
     | 
| 
         @@ -391,6 +391,7 @@ files: 
     | 
|
| 
       391 
391 
     | 
    
         
             
            - lib/protobuf/field/uint32_field.rb
         
     | 
| 
       392 
392 
     | 
    
         
             
            - lib/protobuf/field/uint64_field.rb
         
     | 
| 
       393 
393 
     | 
    
         
             
            - lib/protobuf/field/varint_field.rb
         
     | 
| 
      
 394 
     | 
    
         
            +
            - lib/protobuf/lifecycle.rb
         
     | 
| 
       394 
395 
     | 
    
         
             
            - lib/protobuf/logger.rb
         
     | 
| 
       395 
396 
     | 
    
         
             
            - lib/protobuf/message.rb
         
     | 
| 
       396 
397 
     | 
    
         
             
            - lib/protobuf/message/decoder.rb
         
     | 
| 
         @@ -441,6 +442,7 @@ files: 
     | 
|
| 
       441 
442 
     | 
    
         
             
            - spec/lib/protobuf/enum_spec.rb
         
     | 
| 
       442 
443 
     | 
    
         
             
            - spec/lib/protobuf/enum_value_spec.rb
         
     | 
| 
       443 
444 
     | 
    
         
             
            - spec/lib/protobuf/field/int32_field_spec.rb
         
     | 
| 
      
 445 
     | 
    
         
            +
            - spec/lib/protobuf/lifecycle_spec.rb
         
     | 
| 
       444 
446 
     | 
    
         
             
            - spec/lib/protobuf/logger_spec.rb
         
     | 
| 
       445 
447 
     | 
    
         
             
            - spec/lib/protobuf/message_spec.rb
         
     | 
| 
       446 
448 
     | 
    
         
             
            - spec/lib/protobuf/rpc/client_spec.rb
         
     |