killbill 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.0.3
data/lib/killbill.rb CHANGED
@@ -1,45 +1,47 @@
1
1
  begin
2
2
  require 'java'
3
- rescue LoadError => e
4
- warn 'You need JRuby to run Killbill plugins'
5
- raise e
6
- end
7
3
 
8
- KILLBILL_APIS = %w(
9
- com.ning.billing.account.api.AccountUserApi
10
- com.ning.billing.analytics.api.sanity.AnalyticsSanityApi
11
- com.ning.billing.analytics.api.user.AnalyticsUserApi
12
- com.ning.billing.catalog.api.CatalogUserApi
13
- com.ning.billing.entitlement.api.migration.EntitlementMigrationApi
14
- com.ning.billing.entitlement.api.timeline.EntitlementTimelineApi
15
- com.ning.billing.entitlement.api.transfer.EntitlementTransferApi
16
- com.ning.billing.entitlement.api.user.EntitlementUserApi
17
- com.ning.billing.invoice.api.InvoiceMigrationApi
18
- com.ning.billing.invoice.api.InvoicePaymentApi
19
- com.ning.billing.invoice.api.InvoiceUserApi
20
- com.ning.billing.overdue.OverdueUserApi
21
- com.ning.billing.payment.api.PaymentApi
22
- com.ning.billing.tenant.api.TenantUserApi
23
- com.ning.billing.usage.api.UsageUserApi
24
- com.ning.billing.util.api.AuditUserApi
25
- com.ning.billing.util.api.CustomFieldUserApi
26
- com.ning.billing.util.api.ExportUserApi
27
- com.ning.billing.util.api.TagUserApi
28
- )
4
+ KILLBILL_APIS = %w(
5
+ com.ning.billing.account.api.AccountUserApi
6
+ com.ning.billing.analytics.api.sanity.AnalyticsSanityApi
7
+ com.ning.billing.analytics.api.user.AnalyticsUserApi
8
+ com.ning.billing.catalog.api.CatalogUserApi
9
+ com.ning.billing.entitlement.api.migration.EntitlementMigrationApi
10
+ com.ning.billing.entitlement.api.timeline.EntitlementTimelineApi
11
+ com.ning.billing.entitlement.api.transfer.EntitlementTransferApi
12
+ com.ning.billing.entitlement.api.user.EntitlementUserApi
13
+ com.ning.billing.invoice.api.InvoiceMigrationApi
14
+ com.ning.billing.invoice.api.InvoicePaymentApi
15
+ com.ning.billing.invoice.api.InvoiceUserApi
16
+ com.ning.billing.overdue.OverdueUserApi
17
+ com.ning.billing.payment.api.PaymentApi
18
+ com.ning.billing.tenant.api.TenantUserApi
19
+ com.ning.billing.usage.api.UsageUserApi
20
+ com.ning.billing.util.api.AuditUserApi
21
+ com.ning.billing.util.api.CustomFieldUserApi
22
+ com.ning.billing.util.api.ExportUserApi
23
+ com.ning.billing.util.api.TagUserApi
24
+ )
29
25
 
30
- begin
31
- KILLBILL_APIS.each { |api| java_import api }
32
- rescue NameError
33
- # killbill-api should be provided by the JRuby OSGI bundle. We default to using JBundler for development purposes only
34
26
  begin
35
- require 'jbundler'
36
27
  KILLBILL_APIS.each { |api| java_import api }
37
- warn 'Using JBundler to load killbill-api (see .jbundler/classpath.rb). This should only happen in development mode!'
38
- rescue LoadError => e
39
- warn 'Unable to load killbill-api. For development purposes, use JBundler (create the following Jarfile: http://git.io/eobYXA and run: `bundle install && jbundle install\')'
28
+ rescue NameError
29
+ # killbill-api should be provided by the JRuby OSGI bundle. We default to using JBundler for development purposes only
30
+ begin
31
+ require 'jbundler'
32
+ KILLBILL_APIS.each { |api| java_import api }
33
+ warn 'Using JBundler to load killbill-api (see .jbundler/classpath.rb). This should only happen in development mode!'
34
+ rescue LoadError => e
35
+ warn 'Unable to load killbill-api. For development purposes, use JBundler (create the following Jarfile: http://git.io/eobYXA and run: `bundle install && jbundle install\')'
36
+ end
40
37
  end
38
+
39
+ rescue LoadError => e
40
+ warn 'You need JRuby to run Killbill plugins'
41
+ #raise e
41
42
  end
42
43
 
44
+
43
45
  require 'killbill/http_servlet'
44
46
  require 'killbill/notification'
45
47
  require 'killbill/payment'
@@ -0,0 +1,28 @@
1
+
2
+ module Killbill
3
+ module Plugin
4
+ class Creator
5
+
6
+ attr_reader :target_class_name
7
+
8
+ def initialize(target_class_name)
9
+ @target_class_name = target_class_name
10
+ end
11
+
12
+ def create(*args)
13
+ real_class = class_from_string
14
+ args.nil? ? real_class.new : real_class.new(*args)
15
+ end
16
+
17
+ private
18
+
19
+ def class_from_string()
20
+ @target_class_name.split('::').inject(Kernel) do |mod, class_name|
21
+ mod.const_get(class_name)
22
+ end
23
+ end
24
+
25
+ end
26
+ end
27
+ end
28
+
@@ -1,5 +1,6 @@
1
1
  require 'singleton'
2
2
 
3
+ require 'killbill/creator'
3
4
  require 'killbill/plugin'
4
5
  require 'killbill/jresponse/jpayment_response'
5
6
  require 'killbill/jresponse/jrefund_response'
@@ -18,8 +19,7 @@ module Killbill
18
19
  attr_reader :real_payment
19
20
 
20
21
  def initialize(real_class_name, services = {})
21
- real_payment_class = class_from_string(real_class_name)
22
- @real_payment = real_payment_class.new(services)
22
+ @real_payment = Creator.new(real_class_name).create(services)
23
23
  end
24
24
 
25
25
  # TODO STEPH decide what to do the getName()
@@ -110,11 +110,6 @@ module Killbill
110
110
  raise Java::com.ning.billing.payment.plugin.api.PaymentPluginApiException.new("#{api} failure", e.message)
111
111
  end
112
112
 
113
- def class_from_string(str)
114
- str.split('::').inject(Kernel) do |mod, class_name|
115
- mod.const_get(class_name)
116
- end
117
- end
118
113
 
119
114
  def convert_args(api, args)
120
115
  args.collect! do |a|
@@ -0,0 +1,45 @@
1
+ require 'killbill/http_servlet'
2
+ require 'killbill/logger'
3
+
4
+ module Killbill
5
+ # There are various types of plugins one can write for Killbill:
6
+ #
7
+ # 1) notifications plugins, which listen to external bus events and can react to it
8
+ # 2) payment plugins, which are used to issue payments against a payment gateway
9
+ module Plugin
10
+ class JPlugin
11
+
12
+ attr_reader :delegate_plugin
13
+
14
+ # Called by the Killbill lifecycle when initializing the plugin
15
+ def start_plugin
16
+ @delegate_plugin.start_plugin
17
+ end
18
+
19
+ # Called by the Killbill lifecycle when stopping the plugin
20
+ def stop_plugin
21
+ @delegate_plugin.stop_plugin
22
+ end
23
+
24
+ # Called by the Killbill lifecycle when instantiating the plugin
25
+ def initialize(plugin_class_name, services = {})
26
+ @delegate_plugin = Creator.new(plugin_class_name).create(services)
27
+ end
28
+
29
+ # Called by the Killbill lifecycle to register the servlet
30
+ def rack_handler
31
+ config_ru = Pathname.new("#{@delegate_plugin.root}/config.ru").expand_path
32
+ if config_ru.file?
33
+ @delegate_plugin.logger.info "Found Rack configuration file at #{config_ru.to_s}"
34
+ instance = Killbill::Plugin::RackHandler.instance
35
+ instance.configure(@logger, config_ru.to_s) unless instance.configured?
36
+ instance
37
+ else
38
+ @delegate_plugin.logger.info "No Rack configuration file found at #{config_ru.to_s}"
39
+ nil
40
+ end
41
+ end
42
+
43
+ end
44
+ end
45
+ end
@@ -1,4 +1,3 @@
1
- require 'killbill/http_servlet'
2
1
  require 'killbill/logger'
3
2
 
4
3
  module Killbill
@@ -47,6 +46,7 @@ module Killbill
47
46
 
48
47
  # Called by the Killbill lifecycle when instantiating the plugin
49
48
  def initialize(services = {})
49
+
50
50
  @active = false
51
51
 
52
52
  services.each do |service_name, service_instance|
@@ -62,18 +62,8 @@ module Killbill
62
62
  @logger = Killbill::Plugin::Logger.new(logger)
63
63
  end
64
64
 
65
- # Called by the Killbill lifecycle to register the servlet
66
- def rack_handler
67
- config_ru = Pathname.new("#{@root}/config.ru").expand_path
68
- if config_ru.file?
69
- @logger.info "Found Rack configuration file at #{config_ru.to_s}"
70
- instance = Killbill::Plugin::RackHandler.instance
71
- instance.configure(@logger, config_ru.to_s) unless instance.configured?
72
- instance
73
- else
74
- @logger.info "No Rack configuration file found at #{config_ru.to_s}"
75
- nil
76
- end
65
+ def logger
66
+ @logger ||= Logger.new(STDOUT)
77
67
  end
78
68
 
79
69
  class APINotAvailableError < NotImplementedError
@@ -26,6 +26,12 @@ module Killbill
26
26
  @properties = properties
27
27
  end
28
28
 
29
+ def value(key)
30
+ (@properties || []).each do |prop|
31
+ return prop.value if prop.key == key
32
+ end
33
+ nil
34
+ end
29
35
  end
30
36
  end
31
- end
37
+ end
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: killbill
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.2
5
+ version: 1.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Killbill core team
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-16 00:00:00.000000000 Z
12
+ date: 2013-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jbundler
@@ -106,8 +106,10 @@ files:
106
106
  - VERSION
107
107
  - killbill.gemspec
108
108
  - lib/killbill.rb
109
+ - lib/killbill/creator.rb
109
110
  - lib/killbill/http_servlet.rb
110
111
  - lib/killbill/jpayment.rb
112
+ - lib/killbill/jplugin.rb
111
113
  - lib/killbill/jresponse/jconverter.rb
112
114
  - lib/killbill/jresponse/jpayment_method_response.rb
113
115
  - lib/killbill/jresponse/jpayment_method_response_internal.rb