omf_common 6.1.3.pre.1 → 6.1.3.pre.2

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/Gemfile CHANGED
@@ -6,3 +6,7 @@ gemspec
6
6
  group :test do
7
7
  gem 'rake'
8
8
  end
9
+
10
+ group :xmpp do
11
+ gem 'blather'
12
+ end
@@ -127,17 +127,14 @@ module OmfCommon
127
127
  begin
128
128
  last_reported_timestamp = nil
129
129
  @session = ::AMQP.connect(@url, @opts) do |connection|
130
- connection.on_connection_interruption do |conn|
131
- warn "Conn detected connection interruption"
130
+ connection.on_tcp_connection_loss do |conn, settings|
131
+ now = Time.now
132
+ if last_reported_timestamp == nil || (now - last_reported_timestamp) > 60
133
+ warn "Lost connectivity. Trying to reconnect..."
134
+ last_reported_timestamp = now
135
+ end
136
+ _reconnect(conn)
132
137
  end
133
- #connection.on_tcp_connection_loss do |conn, settings|
134
- # now = Time.now
135
- # if last_reported_timestamp == nil || (now - last_reported_timestamp) > 60
136
- # warn "Lost connectivity. Trying to reconnect..."
137
- # last_reported_timestamp = now
138
- # end
139
- # _reconnect(conn)
140
- #end
141
138
  @channel = ::AMQP::Channel.new(connection)
142
139
  @channel.auto_recovery = true
143
140
 
@@ -3,8 +3,21 @@
3
3
  # You should find a copy of the License in LICENSE.TXT or at http://opensource.org/licenses/MIT.
4
4
  # By downloading or using this software you accept the terms and the liability disclaimer in the License.
5
5
 
6
- require 'blather'
7
- require 'blather/client/dsl'
6
+ begin
7
+ require 'blather'
8
+ require 'blather/client/dsl'
9
+ rescue LoadError => e
10
+ error <<-ERR
11
+ #{e.message}
12
+
13
+ # Looks like you are trying to use XMPP as your communication protocol but you have not installed XMPP library 'blather'
14
+ #
15
+ # To correct this, install blather. E.g.
16
+ #
17
+ # gem install blather
18
+ ERR
19
+ exit(1)
20
+ end
8
21
 
9
22
  require 'omf_common/comm/xmpp/xmpp_mp'
10
23
  require 'omf_common/comm/xmpp/topic'
data/lib/omf_common.rb CHANGED
@@ -17,6 +17,8 @@ require 'omf_common/auth'
17
17
  require 'omf_common/core_ext/string'
18
18
  require 'omf_common/eventloop'
19
19
 
20
+ require 'oml4r/logging/oml4r_appender'
21
+
20
22
  include OmfCommon::DefaultLogging
21
23
 
22
24
  # Set the default encoding to UTF8
@@ -132,15 +134,54 @@ module OmfCommon
132
134
  }
133
135
  }
134
136
 
137
+ # Initialise the OMF runtime.
138
+ #
139
+ # The options here can be customised via EC or RC's configuration files.
140
+ #
141
+ # Given the following example EC configuration file (YAML format):
142
+ #
143
+ # environment: development
144
+ # communication:
145
+ # url: amqp://localhost
146
+ #
147
+ # OMF runtime will be configured as:
148
+ #
149
+ # OmfCommon.init(:development, { communication: { url: "amqp://localhost" }})
150
+ #
151
+ #
152
+ # @example Use AMQP for communication in :development mode
153
+ #
154
+ # OmfCommon.init(:development, { communication: { url: "amqp://localhost" }})
155
+ #
156
+ # @example Change Logging configuration
135
157
  #
136
- # Initialize the OMF runtime.
137
- # Options are:
138
- # :communication
139
- # :type
140
- # ... specific opts
141
- # :eventloop
142
- # :type {:em|:local...}
158
+ # options = {
159
+ # communication: { url: "amqp://localhost" },
160
+ # logging: {
161
+ # level: { default: 'debug' },
162
+ # appenders: {
163
+ # stdout: {
164
+ # level: :info,
165
+ # date_pattern: '%H:%M:%S',
166
+ # pattern: '%d %5l %c{2}: %m\n'
167
+ # },
168
+ # rolling_file: {
169
+ # level: :debug,
170
+ # log_dir: '/var/tmp',
171
+ # size: 1024*1024*50, # max 50mb of each log file
172
+ # keep: 5, # keep a 5 logs in total
173
+ # date_pattern: '%F %T %z',
174
+ # pattern: '[%d] %-5l %c: %m\n'
175
+ # },
176
+ # }
177
+ # }
178
+ # }
143
179
  #
180
+ # OmfCommon.init(:development, options)
181
+ #
182
+ # @see _init_logging
183
+ #
184
+ # @param [Symbol] op_mode
144
185
  # @param [Hash] opts
145
186
  #
146
187
  def self.init(op_mode, opts = {}, &block)
@@ -245,8 +286,49 @@ module OmfCommon
245
286
  yh
246
287
  end
247
288
 
248
- # DO NOT CALL DIRECTLY
289
+ # DO NOT CALL THIS METHOD DIRECTLY
290
+ #
291
+ # By providing logging section via init method, you could custom how logging messages could be written.
292
+ #
293
+ # @example Change default logging level to :default, but :info under OmfEc namespace
294
+ #
295
+ # {
296
+ # logging: {
297
+ # level: { default: 'debug', 'OmfEc' => 'info' }
298
+ # }
299
+ # }
249
300
  #
301
+ # @example Write logging message to STDOUT, OML, and ROLLING_FILE
302
+ # {
303
+ # logging: {
304
+ # level: { default: 'debug' }, # root logger set to level :debug
305
+ # appenders: {
306
+ # stdout: {
307
+ # level: :info,
308
+ # date_pattern: '%H:%M:%S', # show hours, mintues, seconds
309
+ # pattern: '%d %5l %c{2}: %m\n' # show date time, logging level, namespace/class
310
+ # },
311
+ # rolling_file: {
312
+ # level: :debug,
313
+ # log_dir: '/var/tmp', # files go to /var/tmp
314
+ # log_file: 'bob', # name of file
315
+ # size: 1024*1024*50, # max 50mb of each log file
316
+ # keep: 5, # keep a 5 logs in total
317
+ # date_pattern: '%F %T %z', # shows date, time, timezone
318
+ # pattern: '[%d] %-5l %c: %m\n'
319
+ # },
320
+ # oml4r: {
321
+ # appName: 'bob', # OML appName
322
+ # domain: 'bob_2345', # OML domain (database name)
323
+ # collect: 'tcp:localhost:3003' # OML server
324
+ # }
325
+ # }
326
+ # }
327
+ # }
328
+ #
329
+ # @note OmfCommon now ONLY provides support for STDOUT, OML, FILE, and ROLLING_FILE.
330
+ #
331
+ # @param [Hash] opts
250
332
  def self._init_logging(opts = {})
251
333
  logger = Logging.logger.root
252
334
 
@@ -275,7 +357,11 @@ module OmfCommon
275
357
  date_method: topts.delete(:date_method)
276
358
  }
277
359
 
278
- appender_opts = topts.merge(layout: Logging.layouts.pattern(pattern_opts))
360
+ if pattern_opts[:pattern]
361
+ appender_opts = topts.merge(layout: Logging.layouts.pattern(pattern_opts))
362
+ else
363
+ appender_opts = topts
364
+ end
279
365
 
280
366
  case type.to_sym
281
367
  when :stdout
@@ -286,6 +372,8 @@ module OmfCommon
286
372
  file_name = topts.delete(:log_file) || "#{File.basename($0, File.extname($0))}.log"
287
373
  path = File.join(dir_name, file_name)
288
374
  logger.add_appenders(Logging.appenders.send(type, path, appender_opts))
375
+ when :oml4r
376
+ logger.add_appenders(Logging.appenders.oml4r('oml4r', appender_opts))
289
377
  else
290
378
  raise "Unknown logging appender type '#{type}'"
291
379
  end
data/omf_common.gemspec CHANGED
@@ -28,7 +28,6 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency "mocha"
29
29
 
30
30
  s.add_runtime_dependency "eventmachine"
31
- s.add_runtime_dependency "blather"
32
31
  s.add_runtime_dependency "logging"
33
32
  s.add_runtime_dependency "hashie"
34
33
  s.add_runtime_dependency "oml4r", "~> 2.10.1"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omf_common
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.3.pre.1
4
+ version: 6.1.3.pre.2
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-02 00:00:00.000000000 Z
12
+ date: 2014-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
@@ -107,22 +107,6 @@ dependencies:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: blather
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
110
  - !ruby/object:Gem::Dependency
127
111
  name: logging
128
112
  requirement: !ruby/object:Gem::Requirement