Yoji Shidara
null+****@clear*****
Thu Feb 13 15:29:05 JST 2014
Yoji Shidara 2014-02-13 15:29:05 +0900 (Thu, 13 Feb 2014) New Revision: c7a71d3d98be5226d129d27a9f81261cc96b9bce https://github.com/droonga/fluent-plugin-droonga/commit/c7a71d3d98be5226d129d27a9f81261cc96b9bce Message: Pass catalog to engine explicitly Modified files: lib/droonga/dispatcher.rb lib/droonga/engine.rb lib/droonga/farm.rb lib/fluent/plugin/out_droonga.rb Modified: lib/droonga/dispatcher.rb (+6 -8) =================================================================== --- lib/droonga/dispatcher.rb 2014-02-13 15:19:24 +0900 (d2cc8ac) +++ lib/droonga/dispatcher.rb 2014-02-13 15:29:05 +0900 (24c8b79) @@ -18,13 +18,11 @@ require "tsort" require "droonga/adapter_runner" require "droonga/planner" -require "droonga/catalog" require "droonga/collector" require "droonga/farm" require "droonga/session" require "droonga/replier" require "droonga/message_processing_error" -require "droonga/catalog_observer" require "droonga/distributor" module Droonga @@ -50,16 +48,16 @@ module Droonga end end - def initialize(options) + def initialize(catalog, options) + @catalog = catalog @options = options @name = @options[:name] @loop = EventLoop.new - @catalog_observer = CatalogObserver.new(@loop) @sessions = {} @current_id = 0 @local = Regexp.new("^#{@name}") @adapter_runners = create_adapter_runners - @farm = Farm.new(name, @loop, :dispatcher => self) + @farm = Farm.new(name, @catalog, @loop, :dispatcher => self) @forwarder = Forwarder.new(@loop) @replier = Replier.new(@forwarder) # TODO: make customizable @@ -172,7 +170,7 @@ module Droonga steps.each do |step| dataset = step["dataset"] if dataset - routes = Droonga.catalog.get_routes(dataset, step) + routes =****@catal*****_routes(dataset, step) step["routes"] = routes else step["routes"] ||= [id] @@ -240,14 +238,14 @@ module Droonga raise MissingDatasetParameter.new end dataset = message["dataset"] - unless Droonga.catalog.have_dataset?(dataset) + unles****@catal*****_dataset?(dataset) raise UnknownDataset.new(dataset) end end def create_adapter_runners runners = {} - Droonga.catalog.datasets.each do |name, configuration| + @catalog.datasets.each do |name, configuration| runners[name] = AdapterRunner.new(self, configuration["plugins"] || []) end runners Modified: lib/droonga/engine.rb (+3 -2) =================================================================== --- lib/droonga/engine.rb 2014-02-13 15:19:24 +0900 (124c38d) +++ lib/droonga/engine.rb 2014-02-13 15:29:05 +0900 (ea5c1f1) @@ -20,9 +20,10 @@ require "droonga/dispatcher" module Droonga class Engine - def initialize(options={}) + def initialize(catalog, options={}) + @catalog = catalog @options = options - @dispatcher = Dispatcher.new(@options) + @dispatcher = Dispatcher.new(@catalog, @options) end def start Modified: lib/droonga/farm.rb (+3 -2) =================================================================== --- lib/droonga/farm.rb 2014-02-13 15:19:24 +0900 (21b4787) +++ lib/droonga/farm.rb 2014-02-13 15:29:05 +0900 (96aeddc) @@ -19,12 +19,13 @@ require "droonga/partition" module Droonga class Farm - def initialize(name, loop, options={}) + def initialize(name, catalog, loop, options={}) @name = name + @catalog = catalog @loop = loop @options = options @partitions = {} - partitions = Droonga.catalog.get_partitions(name) + partitions =****@catal*****_partitions(name) partitions.each do |partition_name, partition_options| partition = Droonga::Partition.new(@loop, @options.merge(partition_options)) Modified: lib/fluent/plugin/out_droonga.rb (+7 -1) =================================================================== --- lib/fluent/plugin/out_droonga.rb 2014-02-13 15:19:24 +0900 (cad8f79) +++ lib/fluent/plugin/out_droonga.rb 2014-02-13 15:29:05 +0900 (348b104) @@ -17,6 +17,7 @@ require "droonga/engine" require "droonga/plugin_loader" +require "droonga/catalog_loader" module Fluent class DroongaOutput < Output @@ -27,7 +28,7 @@ module Fluent def start super Droonga::PluginLoader.load_all - @engine = Droonga::Engine.new(:name => @name) + @engine = Droonga::Engine.new(catalog, :name => @name) @engine.start end @@ -44,6 +45,11 @@ module Fluent end private + def catalog + catalog_loader = Droonga::CatalogLoader.new("catalog.json") + catalog_loader.load + end + def process_event(tag, record) $log.trace("out_droonga: tag: <#{tag}>") @engine.process(parse_record(tag, record)) -------------- next part -------------- HTML����������������������������... Download