kpm 0.10.5 → 0.11.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9494301ca44d5d736b5451e958d0e6f16abc4c5aa9c0965b82aa2827f869ce84
4
- data.tar.gz: bd60d65f4870ef85cf896d532d0b81e97985f38611c2472a51dd509cf7eed49d
3
+ metadata.gz: 92f89695b531e939275ac653417d228d51b897570504418032418797a56674bf
4
+ data.tar.gz: acd577c2a29a56c50c0daeacb09a62f7fcf6068650d1ba8ed2e527d6f9db2962
5
5
  SHA512:
6
- metadata.gz: 38bd4cc2f8f9b546b3fe733723cd54049b5c0c5547b2861247a8b8ee6e023753f1ef650bf4e7d8b80a36d2f7b387e0c337a25188978ca5b73714760ce5a3dddc
7
- data.tar.gz: ca87e6f189fa9f7ea5a171fcd7ed75f0dc9ed6bbd52ab0c646bff97b65f2fd180f864561180129ab796922429aa94c5cdbccf7021a7ac14482b030ff4df44d26
6
+ metadata.gz: c44713659fe2517572916f45722df1d6ae7b8d639cb24b227ba161386e104df0c2dcf3f38f7a735cfe0f399cbe5d791dc5802cda6a8a73ec791c5ba9853adfd7
7
+ data.tar.gz: fd47e470a0df6c75785383a45857a93909ff44d4464136a57ad3f4d27e9331a2b9d31cb4a08834885ee099292a7df5ea6ee9417bfa94fa3c93801114c3af15d3
data/README.adoc CHANGED
@@ -38,24 +38,6 @@ gem install kpm
38
38
  [[kill-bill-installation]]
39
39
  === Kill Bill installation
40
40
 
41
- [[kpm-install]]
42
- ==== kpm install
43
-
44
- `kpm install` (with no argument) will setup https://github.com/killbill/killbill[Kill Bill] and https://github.com/killbill/killbill-admin-ui-standalone[Kaui] in your current directory, including:
45
-
46
- * http://tomcat.apache.org/[Tomcat] (open-source Java web server)
47
- * The Kill Bill application (war) is installed in the `./webapps` directory
48
- * The Kill Bill UI (Kaui war) is installed in the `./webapps` directory
49
- * Default OSGI bundles are installed in the `/var/tmp/bundles` directory
50
-
51
- To start Kill Bill, simply run
52
-
53
- ....
54
- ./bin/catalina.sh run
55
- ....
56
-
57
- You can then verify Kill Bill is running by going to http://127.0.0.1:8080/kaui.
58
-
59
41
  [[kpm-install-using-a-kpm.yml-file]]
60
42
  ==== kpm install Using A `kpm.yml` File
61
43
 
data/install_example.yml CHANGED
@@ -7,11 +7,6 @@ killbill:
7
7
  java:
8
8
  - name: analytics-plugin
9
9
  version: 0.6.0
10
- ruby:
11
- - name: logging-plugin
12
- version: LATEST
13
- - name: zendesk-plugin
14
- version: 1.3.0
15
10
  nexus:
16
11
  ssl_verify: false
17
12
  url: https://oss.sonatype.org
data/kpm.gemspec CHANGED
@@ -41,10 +41,10 @@ Gem::Specification.new do |s|
41
41
 
42
42
  s.rdoc_options << '--exclude' << '.'
43
43
 
44
- s.add_dependency 'highline', '~> 1.6.21'
44
+ s.add_dependency 'highline', '>= 1.6.21', '< 2.1.0'
45
45
  s.add_dependency 'killbill-client', '~> 3.2'
46
- s.add_dependency 'rubyzip', '~> 1.3.0'
47
- s.add_dependency 'thor', '~> 0.19.1'
46
+ s.add_dependency 'rubyzip', '>= 1.3', '< 2.4'
47
+ s.add_dependency 'thor', '>= 0.19.1', '< 1.3.0'
48
48
 
49
49
  s.add_development_dependency 'gem-release', '~> 2.2'
50
50
  s.add_development_dependency 'rake', '~> 13.0'
@@ -25,10 +25,6 @@ module KPM
25
25
  KILLBILL_JAVA_PLUGIN_PACKAGING = 'jar'
26
26
  KILLBILL_JAVA_PLUGIN_CLASSIFIER = nil
27
27
 
28
- KILLBILL_RUBY_PLUGIN_GROUP_ID = 'org.kill-bill.billing.plugin.ruby'
29
- KILLBILL_RUBY_PLUGIN_PACKAGING = 'tar.gz'
30
- KILLBILL_RUBY_PLUGIN_CLASSIFIER = nil
31
-
32
28
  KAUI_GROUP_ID = 'org.kill-bill.billing.kaui'
33
29
  KAUI_ARTIFACT_ID = 'kaui-standalone'
34
30
  KAUI_PACKAGING = 'war'
@@ -79,7 +79,7 @@ module KPM
79
79
  :group_id => group_id, :artifact_id => artifact_id, :packaging => packaging, :classifier => classifier))
80
80
  end
81
81
 
82
- def install_plugin(plugin_key, raw_kb_version = nil, specified_group_id = nil, specified_artifact_id = nil, specified_packaging = nil, specified_classifier = nil, specified_version = nil, bundles_dir = nil, specified_type = nil, force_download = false, verify_sha1 = true, verify_jruby_jar = false)
82
+ def install_plugin(plugin_key, raw_kb_version = nil, specified_group_id = nil, specified_artifact_id = nil, specified_packaging = nil, specified_classifier = nil, specified_version = nil, bundles_dir = nil, specified_type = nil, force_download = false, verify_sha1 = true)
83
83
  # plugin_key needs to exist
84
84
  raise ArgumentError, 'Aborting installation: User needs to specify a pluginKey' if plugin_key.nil?
85
85
 
@@ -94,7 +94,6 @@ module KPM
94
94
  # If there is no entry in plugins_directory.yml and the group_id is not the killbill default group_id, the key provided must be a user key and must have a namespace
95
95
  if looked_up_artifact_id.nil? &&
96
96
  specified_group_id != KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_GROUP_ID &&
97
- specified_group_id != KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_GROUP_ID &&
98
97
  plugin_key.split(':').size == 1
99
98
  raise ArgumentError, "Aborting installation: pluginKey = #{plugin_key} does not exist in plugin_directory.yml so format of the key must have a user namespace (e.g namespace:key)"
100
99
  end
@@ -114,14 +113,7 @@ module KPM
114
113
  version = specified_version || looked_up_version || LATEST_VERSION
115
114
  destination = plugins_dir.join('java').join(artifact_id).join(version)
116
115
  else
117
-
118
- warn_if_jruby_jar_missing(bundles_dir) if verify_jruby_jar
119
-
120
- group_id = specified_group_id || looked_up_group_id || KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_GROUP_ID
121
- packaging = specified_packaging || looked_up_packaging || KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_PACKAGING
122
- classifier = specified_classifier || looked_up_classifier || KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_CLASSIFIER
123
- version = specified_version || looked_up_version || LATEST_VERSION
124
- destination = plugins_dir.join('ruby')
116
+ raise ArgumentError, "Aborting installation: plugin type #{type} unsupported"
125
117
  end
126
118
  sha1_file = "#{bundles_dir}/#{SHA1_FILENAME}"
127
119
  plugins_manager = PluginsManager.new(plugins_dir, @logger)
@@ -178,7 +170,7 @@ module KPM
178
170
  plugin_name = name.nil? ? Utils.get_plugin_name_from_file_path(file_path) : name
179
171
  destination = plugins_dir.join('java').join(plugin_name).join(version)
180
172
  else
181
- destination = plugins_dir.join('ruby')
173
+ raise ArgumentError, "Aborting installation: plugin type #{type} unsupported"
182
174
  end
183
175
 
184
176
  artifact_info = KPM::KillbillPluginArtifact.pull_from_fs(@logger, file_path, destination)
@@ -245,10 +237,6 @@ module KPM
245
237
  info.merge('status' => (info[:skipped] ? 'UP_TO_DATE' : 'INSTALLED'),
246
238
  :group_id => group_id, :artifact_id => artifact_id, :packaging => packaging, :classifier => classifier))
247
239
 
248
- # The special JRuby bundle needs to be called jruby.jar
249
- # TODO .first - code smell
250
- File.rename Dir.glob("#{destination}/killbill-platform-osgi-bundles-jruby-*.jar").first, destination.join('jruby.jar') unless info[:skipped]
251
-
252
240
  info
253
241
  end
254
242
 
@@ -281,35 +269,5 @@ module KPM
281
269
  plugins_manager = PluginsManager.new(plugins_dir, @logger)
282
270
  plugins_manager.set_active(artifact_info[:bundle_dir])
283
271
  end
284
-
285
- def warn_if_jruby_jar_missing(bundles_dir)
286
- platform_dir = bundles_dir.join('platform')
287
- jruby_jar = platform_dir.join('jruby.jar')
288
- if !File.exist?(jruby_jar)
289
- @logger.warn(" Missing installation for jruby.jar under #{platform_dir}. This is required for ruby plugin installation")
290
- else
291
- version = extract_jruby_jar_version(jruby_jar)
292
- if version
293
- @logger.info(" Detected jruby.jar version #{version}")
294
- else
295
- @logger.warn(" Failed to detect jruby.jar version for #{jruby_jar}")
296
- end
297
- end
298
- end
299
-
300
- def extract_jruby_jar_version(jruby_jar)
301
- selected_entries = Zip::File.open(jruby_jar) do |zip_file|
302
- zip_file.select do |entry|
303
- entry.name == 'META-INF/maven/org.kill-bill.billing/killbill-platform-osgi-bundles-jruby/pom.properties'
304
- end
305
- end
306
-
307
- if selected_entries && selected_entries.size == 1
308
- zip_entry = selected_entries[0]
309
- content = zip_entry.get_input_stream.read
310
- return content.split("\n").select { |e| e.start_with?('version') }[0].split('=')[1]
311
- end
312
- nil
313
- end
314
272
  end
315
273
  end
data/lib/kpm/installer.rb CHANGED
@@ -87,9 +87,9 @@ module KPM
87
87
  end
88
88
  bundles_dir ||= DEFAULT_BUNDLES_DIR
89
89
 
90
- help = nil
91
90
  unless @config.nil?
92
- help = install_tomcat if @config['webapp_path'].nil?
91
+ raise ArgumentError, "Aborting installation, no webapp_path specified in config: #{@config}" if @config['webapp_path'].nil?
92
+
93
93
  install_killbill_server(@config['group_id'], @config['artifact_id'], @config['packaging'], @config['classifier'], @config['version'], @config['webapp_path'], bundles_dir, force_download, verify_sha1)
94
94
  install_plugins(bundles_dir, @config['version'], force_download, verify_sha1)
95
95
  install_default_bundles(bundles_dir, @config['default_bundles_version'], @config['version'], force_download, verify_sha1) unless @config['default_bundles'] == false
@@ -105,29 +105,13 @@ module KPM
105
105
  install_kaui(@kaui_config['group_id'], @kaui_config['artifact_id'], @kaui_config['packaging'], @kaui_config['classifier'], @kaui_config['version'], @kaui_config['webapp_path'], bundles_dir, force_download, verify_sha1)
106
106
  end
107
107
 
108
- @trace_logger.add('help', nil, help)
109
108
  @trace_logger.to_json
110
109
  end
111
110
 
112
111
  private
113
112
 
114
- def install_tomcat(dir = Dir.pwd)
115
- # Download and unpack Tomcat
116
- manager = KPM::TomcatManager.new(dir, @logger)
117
- manager.download
118
-
119
- # Update main config
120
- root_war_path = manager.setup
121
- @config['webapp_path'] = root_war_path
122
- @kaui_config['webapp_path'] = Pathname.new(File.dirname(root_war_path)).join('kaui.war').to_s unless @kaui_config.nil?
123
-
124
- # Help message
125
- manager.help
126
- end
127
-
128
113
  def install_plugins(bundles_dir, raw_kb_version, force_download, verify_sha1)
129
114
  install_java_plugins(bundles_dir, raw_kb_version, force_download, verify_sha1)
130
- install_ruby_plugins(bundles_dir, raw_kb_version, force_download, verify_sha1)
131
115
  end
132
116
 
133
117
  def install_java_plugins(bundles_dir, raw_kb_version, force_download, verify_sha1)
@@ -135,20 +119,7 @@ module KPM
135
119
 
136
120
  infos = []
137
121
  @config['plugins']['java'].each do |plugin|
138
- infos << install_plugin(plugin['name'], raw_kb_version, plugin['group_id'], plugin['artifact_id'], plugin['packaging'], plugin['classifier'], plugin['version'], bundles_dir, 'java', force_download, verify_sha1, false)
139
- end
140
-
141
- infos
142
- end
143
-
144
- def install_ruby_plugins(bundles_dir, raw_kb_version, force_download, verify_sha1)
145
- return if @config['plugins'].nil? || @config['plugins']['ruby'].nil?
146
-
147
- verify_jruby_jar = true
148
- infos = []
149
- @config['plugins']['ruby'].each do |plugin|
150
- infos << install_plugin(plugin['name'], raw_kb_version, plugin['group_id'], plugin['artifact_id'], plugin['packaging'], plugin['classifier'], plugin['version'], bundles_dir, 'ruby', force_download, verify_sha1, verify_jruby_jar)
151
- verify_jruby_jar = false
122
+ infos << install_plugin(plugin['name'], raw_kb_version, plugin['group_id'], plugin['artifact_id'], plugin['packaging'], plugin['classifier'], plugin['version'], bundles_dir, 'java', force_download, verify_sha1)
152
123
  end
153
124
 
154
125
  infos
@@ -8,15 +8,15 @@ module KPM
8
8
  class << self
9
9
  def pull(logger, group_id, artifact_id, packaging = 'jar', classifier = nil, version = 'LATEST', plugin_name = nil, destination_path = nil, sha1_file = nil, force_download = false, verify_sha1 = true, overrides = {}, ssl_verify = true)
10
10
  coordinate_map = { group_id: group_id, artifact_id: artifact_id, packaging: packaging, classifier: classifier, version: version }
11
- pull_and_put_in_place(logger, coordinate_map, plugin_name, destination_path, ruby_plugin_and_should_skip_top_dir?(group_id, artifact_id), sha1_file, force_download, verify_sha1, overrides, ssl_verify)
11
+ pull_and_put_in_place(logger, coordinate_map, plugin_name, destination_path, false, sha1_file, force_download, verify_sha1, overrides, ssl_verify)
12
12
  end
13
13
 
14
14
  def versions(overrides = {}, ssl_verify = true)
15
- plugins = { java: {}, ruby: {} }
15
+ plugins = { java: {} }
16
16
 
17
17
  nexus = nexus_remote(overrides, ssl_verify)
18
18
 
19
- [[:java, KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_GROUP_ID], [:ruby, KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_GROUP_ID]].each do |type_and_group_id|
19
+ [[:java, KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_GROUP_ID]].each do |type_and_group_id|
20
20
  response = REXML::Document.new nexus.search_for_artifacts(type_and_group_id[1])
21
21
  response.elements.each('searchNGResponse/data/artifact') do |element|
22
22
  artifact_id = element.elements['artifactId'].text
@@ -27,15 +27,6 @@ module KPM
27
27
 
28
28
  plugins
29
29
  end
30
-
31
- protected
32
-
33
- # Magic methods...
34
-
35
- def ruby_plugin_and_should_skip_top_dir?(group_id, artifact_id)
36
- # The second check is for custom ruby plugins
37
- group_id == KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_GROUP_ID || artifact_id.include?('plugin')
38
- end
39
30
  end
40
31
  end
41
32
  end
@@ -147,7 +147,7 @@ module KPM
147
147
  case response.code
148
148
  when '200'
149
149
  response.body
150
- when '301', '307'
150
+ when '301', '302', '307'
151
151
  location = response['Location']
152
152
  logger.debug { "Following redirect to #{location}" }
153
153
 
@@ -31,12 +31,11 @@ module KPM
31
31
  return nil if plugin.nil?
32
32
 
33
33
  type = plugin[:type]
34
- is_ruby = type == :ruby
35
34
 
36
- group_id = plugin[:group_id] || (is_ruby ? KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_GROUP_ID : KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_GROUP_ID)
35
+ group_id = plugin[:group_id] || KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_GROUP_ID
37
36
  artifact_id = plugin[:artifact_id] || "#{plugin_key}-plugin"
38
- packaging = plugin[:packaging] || (is_ruby ? KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_PACKAGING : KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_PACKAGING)
39
- classifier = plugin[:classifier] || (is_ruby ? KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_CLASSIFIER : KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_CLASSIFIER)
37
+ packaging = plugin[:packaging] || KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_PACKAGING
38
+ classifier = plugin[:classifier] || KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_CLASSIFIER
40
39
 
41
40
  if raw_kb_version == 'LATEST'
42
41
  version = 'LATEST'
@@ -80,4 +80,4 @@
80
80
  :stripe:
81
81
  :type: :java
82
82
  :versions:
83
- :0.22: 7.3.1
83
+ :0.22: 7.3.3
data/lib/kpm/tasks.rb CHANGED
@@ -187,8 +187,7 @@ module KPM
187
187
  options[:destination],
188
188
  'java',
189
189
  options[:force_download],
190
- options[:verify_sha1],
191
- false)
190
+ options[:verify_sha1])
192
191
  else
193
192
  installer.install_plugin_from_fs(plugin_key, options[:from_source_file], nil, options[:version], options[:destination], 'java')
194
193
  end
@@ -196,72 +195,6 @@ module KPM
196
195
  say "Artifact has been retrieved and can be found at path: #{response[:file_path]}", :green
197
196
  end
198
197
 
199
- method_option :group_id,
200
- type: :string,
201
- default: KillbillPluginArtifact::KILLBILL_RUBY_PLUGIN_GROUP_ID,
202
- desc: 'The plugin artifact group-id'
203
- method_option :artifact_id,
204
- type: :string,
205
- default: nil,
206
- desc: 'The plugin artifact id'
207
- method_option :version,
208
- type: :string,
209
- default: nil,
210
- desc: 'The plugin artifact version'
211
- method_option :packaging,
212
- type: :string,
213
- default: KillbillPluginArtifact::KILLBILL_RUBY_PLUGIN_PACKAGING,
214
- desc: 'The plugin artifact packaging'
215
- method_option :classifier,
216
- type: :string,
217
- default: KillbillPluginArtifact::KILLBILL_RUBY_PLUGIN_CLASSIFIER,
218
- desc: 'The plugin artifact classifier'
219
- method_option :from_source_file,
220
- type: :string,
221
- default: nil,
222
- desc: 'Specify the ruby plugin archive that should be used for the installation.'
223
- method_option :destination,
224
- type: :string,
225
- default: nil,
226
- desc: 'A different folder other than the current working directory.'
227
- method_option :force_download,
228
- type: :boolean,
229
- default: false,
230
- desc: 'Force download of the artifact even if it exists'
231
- method_option :sha1_file,
232
- type: :string,
233
- default: nil,
234
- desc: 'Location of the sha1 file'
235
- method_option :verify_sha1,
236
- type: :boolean,
237
- default: true,
238
- desc: 'Validates sha1 sum'
239
- desc 'install_ruby_plugin plugin-key <kb-version>', 'Pulls a ruby plugin and installs it under the specified destination. If the kb-version has been specified, it is used to download the matching plugin artifact version; if not, it uses the specified plugin version or if null, the LATEST one.'
240
- def install_ruby_plugin(plugin_key, kb_version = 'LATEST')
241
- installer = BaseInstaller.new(logger,
242
- options[:overrides],
243
- options[:ssl_verify])
244
-
245
- response = if options[:from_source_file].nil?
246
- installer.install_plugin(plugin_key,
247
- kb_version,
248
- options[:group_id],
249
- options[:artifact_id],
250
- options[:packaging],
251
- options[:classifier],
252
- options[:version],
253
- options[:destination],
254
- 'ruby',
255
- options[:force_download],
256
- options[:verify_sha1],
257
- true)
258
- else
259
- installer.install_plugin_from_fs(plugin_key, options[:from_source_file], nil, nil, options[:destination], 'ruby')
260
- end
261
-
262
- say "Artifact has been retrieved and can be found at path: #{response[:file_path]}", :green
263
- end
264
-
265
198
  method_option :destination,
266
199
  type: :string,
267
200
  default: nil,
@@ -647,8 +580,7 @@ module KPM
647
580
  logger.error e.backtrace.join("\n") unless e.is_a?(Interrupt)
648
581
  end
649
582
 
650
- map pull_ruby_plugin: :install_ruby_plugin,
651
- pull_java_plugin: :install_java_plugin
583
+ map pull_java_plugin: :install_java_plugin
652
584
 
653
585
  private
654
586
 
data/lib/kpm/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KPM
4
- VERSION = '0.10.5'
4
+ VERSION = '0.11.1'
5
5
  end
data/lib/kpm.rb CHANGED
@@ -7,7 +7,6 @@ module KPM
7
7
  autoload :Formatter, 'kpm/formatter'
8
8
  autoload :Inspector, 'kpm/inspector'
9
9
  autoload :Sha1Checker, 'kpm/sha1_checker'
10
- autoload :TomcatManager, 'kpm/tomcat_manager'
11
10
  autoload :KillbillServerArtifact, 'kpm/killbill_server_artifact'
12
11
  autoload :KillbillPluginArtifact, 'kpm/killbill_plugin_artifact'
13
12
  autoload :KauiArtifact, 'kpm/kaui_artifact'
data/pom.xml CHANGED
@@ -22,7 +22,7 @@
22
22
  <modelVersion>4.0.0</modelVersion>
23
23
  <groupId>org.kill-bill.billing.installer</groupId>
24
24
  <artifactId>kpm</artifactId>
25
- <version>0.10.5</version>
25
+ <version>0.11.1</version>
26
26
  <packaging>pom</packaging>
27
27
  <name>KPM</name>
28
28
  <description>KPM: the Kill Bill Package Manager</description>
@@ -63,12 +63,6 @@ describe KPM::Installer do
63
63
  }, {
64
64
  'name' => 'stripe',
65
65
  'version' => '7.0.0'
66
- }],
67
- 'ruby' => [{
68
- 'name' => 'payment-test-plugin',
69
- 'artifact_id' => 'payment-test-plugin',
70
- 'group_id' => 'org.kill-bill.billing.plugin.ruby',
71
- 'version' => '1.8.7'
72
66
  }]
73
67
  }
74
68
  },
@@ -85,10 +79,7 @@ describe KPM::Installer do
85
79
  installer.install
86
80
  check_installation(plugins_dir, kb_webapp_path, kaui_webapp_path)
87
81
 
88
- # Finally verify that for both (well behaved) ruby and java plugin, skipping the install will still correctly return the `:bundle_dir`
89
- info = installer.install_plugin('payment-test-plugin', nil, 'org.kill-bill.billing.plugin.ruby', 'payment-test-plugin', nil, nil, '1.8.7', plugins_dir)
90
- expect(info[:bundle_dir]).to eq plugins_dir + '/plugins/ruby/killbill-payment-test/1.8.7'
91
-
82
+ # Finally verify that for (well behaved) java plugins, skipping the install will still correctly return the `:bundle_dir`
92
83
  info = installer.install_plugin('analytics', nil, nil, nil, nil, nil, '0.7.1', plugins_dir)
93
84
  expect(info[:bundle_dir]).to eq plugins_dir + '/plugins/java/analytics-plugin/0.7.1'
94
85
  end
@@ -105,10 +96,7 @@ describe KPM::Installer do
105
96
  plugins_dir + '/plugins/java/analytics-plugin',
106
97
  plugins_dir + '/plugins/java/analytics-plugin/0.7.1',
107
98
  plugins_dir + '/plugins/java/stripe-plugin',
108
- plugins_dir + '/plugins/java/stripe-plugin/7.0.0',
109
- plugins_dir + '/plugins/ruby',
110
- plugins_dir + '/plugins/ruby/killbill-payment-test',
111
- plugins_dir + '/plugins/ruby/killbill-payment-test/1.8.7'
99
+ plugins_dir + '/plugins/java/stripe-plugin/7.0.0'
112
100
  ].each do |dir|
113
101
  expect(File.directory?(dir)).to be_truthy
114
102
  end
@@ -116,11 +104,9 @@ describe KPM::Installer do
116
104
  [
117
105
  kb_webapp_path,
118
106
  kaui_webapp_path,
119
- plugins_dir + '/platform/jruby.jar',
120
107
  plugins_dir + '/plugins/plugin_identifiers.json',
121
108
  plugins_dir + '/plugins/java/analytics-plugin/0.7.1/analytics-plugin-0.7.1.jar',
122
- plugins_dir + '/plugins/java/stripe-plugin/7.0.0/stripe-plugin-7.0.0.jar',
123
- plugins_dir + '/plugins/ruby/killbill-payment-test/1.8.7/killbill.properties'
109
+ plugins_dir + '/plugins/java/stripe-plugin/7.0.0/stripe-plugin-7.0.0.jar'
124
110
  ].each do |file|
125
111
  expect(File.file?(file)).to be_truthy
126
112
  end
@@ -129,7 +115,7 @@ describe KPM::Installer do
129
115
  JSON.parse(f.read)
130
116
  end
131
117
 
132
- expect(plugin_identifiers.size).to eq 3
118
+ expect(plugin_identifiers.size).to eq 2
133
119
 
134
120
  expect(plugin_identifiers['analytics']['plugin_name']).to eq 'analytics-plugin'
135
121
  expect(plugin_identifiers['analytics']['group_id']).to eq 'org.kill-bill.billing.plugin.java'
@@ -144,12 +130,5 @@ describe KPM::Installer do
144
130
  expect(plugin_identifiers['stripe']['packaging']).to eq 'jar'
145
131
  expect(plugin_identifiers['stripe']['version']).to eq '7.0.0'
146
132
  expect(plugin_identifiers['stripe']['language']).to eq 'java'
147
-
148
- expect(plugin_identifiers['payment-test-plugin']['plugin_name']).to eq 'killbill-payment-test'
149
- expect(plugin_identifiers['payment-test-plugin']['group_id']).to eq 'org.kill-bill.billing.plugin.ruby'
150
- expect(plugin_identifiers['payment-test-plugin']['artifact_id']).to eq 'payment-test-plugin'
151
- expect(plugin_identifiers['payment-test-plugin']['packaging']).to eq 'tar.gz'
152
- expect(plugin_identifiers['payment-test-plugin']['version']).to eq '1.8.7'
153
- expect(plugin_identifiers['payment-test-plugin']['language']).to eq 'ruby'
154
133
  end
155
134
  end
@@ -8,30 +8,6 @@ describe KPM::KillbillPluginArtifact do
8
8
  @logger.level = Logger::INFO
9
9
  end
10
10
 
11
- # This test makes sure the top level directory is correctly verify_is_skipped
12
- it 'should be able to download and verify .tar.gz ruby artifacts' do
13
- # Use the payment-test-plugin as a test, as it is fairly small (2.5M)
14
- group_id = 'org.kill-bill.billing.plugin.ruby'
15
- artifact_id = 'payment-test-plugin'
16
- packaging = 'tar.gz'
17
- classifier = nil
18
- version = '1.8.7'
19
- plugin_name = 'killbill-payment-test'
20
-
21
- Dir.mktmpdir do |dir|
22
- info = KPM::KillbillPluginArtifact.pull(@logger, group_id, artifact_id, packaging, classifier, version, plugin_name, dir)
23
- expect(info[:file_name]).to be_nil
24
-
25
- files_in_dir = Dir[info[:file_path] + '/*']
26
- expect(files_in_dir.size).to eq 1
27
- expect(files_in_dir[0]).to eq info[:file_path] + '/killbill-payment-test'
28
-
29
- expect(File.read(info[:file_path] + '/killbill-payment-test/1.8.7/killbill.properties')).to eq "mainClass=PaymentTest::PaymentPlugin\nrequire=payment_test\npluginType=PAYMENT\n"
30
-
31
- expect(info[:bundle_dir]).to eq info[:file_path] + '/killbill-payment-test/1.8.7'
32
- end
33
- end
34
-
35
11
  it 'should be able to download and verify artifacts' do
36
12
  Dir.mktmpdir do |dir|
37
13
  sha1_file = dir + '/sha1.yml'
@@ -49,24 +25,6 @@ describe KPM::KillbillPluginArtifact do
49
25
 
50
26
  check_yaml_for_resolved_latest_version(sha1_file, 'org.kill-bill.billing.plugin.java:analytics-plugin:jar', '3.0.0')
51
27
  end
52
-
53
- Dir.mktmpdir do |dir|
54
- sha1_file = dir + '/sha1.yml'
55
- info = KPM::KillbillPluginArtifact.pull(@logger,
56
- KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_GROUP_ID,
57
- 'logging-plugin',
58
- KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_PACKAGING,
59
- KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_CLASSIFIER,
60
- 'LATEST',
61
- 'killbill-analytics',
62
- dir,
63
- sha1_file)
64
-
65
- # No file name - since we untar'ed it
66
- expect(info[:file_name]).to be_nil
67
-
68
- check_yaml_for_resolved_latest_version(sha1_file, 'org.kill-bill.billing.plugin.ruby:logging-plugin:tar.gz', '3.0.0')
69
- end
70
28
  end
71
29
 
72
30
  it 'should be able to list versions' do
@@ -79,12 +37,6 @@ describe KPM::KillbillPluginArtifact do
79
37
  expect(logging_plugin_versions[0]).to eq '0.6.0'
80
38
  expect(logging_plugin_versions[1]).to eq '0.7.0'
81
39
  expect(logging_plugin_versions[2]).to eq '0.7.1'
82
-
83
- expect(versions[:ruby]).not_to be_nil
84
- expect(versions[:ruby]['logging-plugin']).not_to be_nil
85
- logging_plugin_versions = versions[:ruby]['logging-plugin'].to_a
86
- expect(logging_plugin_versions.size).to be >= 1
87
- expect(logging_plugin_versions[0]).to eq '1.7.0'
88
40
  end
89
41
 
90
42
  private
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.5
4
+ version: 0.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kill Bill core team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-09 00:00:00.000000000 Z
11
+ date: 2022-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.6.21
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 2.1.0
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: 1.6.21
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 2.1.0
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: killbill-client
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -42,30 +48,42 @@ dependencies:
42
48
  name: rubyzip
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - "~>"
51
+ - - ">="
46
52
  - !ruby/object:Gem::Version
47
- version: 1.3.0
53
+ version: '1.3'
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: '2.4'
48
57
  type: :runtime
49
58
  prerelease: false
50
59
  version_requirements: !ruby/object:Gem::Requirement
51
60
  requirements:
52
- - - "~>"
61
+ - - ">="
53
62
  - !ruby/object:Gem::Version
54
- version: 1.3.0
63
+ version: '1.3'
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: '2.4'
55
67
  - !ruby/object:Gem::Dependency
56
68
  name: thor
57
69
  requirement: !ruby/object:Gem::Requirement
58
70
  requirements:
59
- - - "~>"
71
+ - - ">="
60
72
  - !ruby/object:Gem::Version
61
73
  version: 0.19.1
74
+ - - "<"
75
+ - !ruby/object:Gem::Version
76
+ version: 1.3.0
62
77
  type: :runtime
63
78
  prerelease: false
64
79
  version_requirements: !ruby/object:Gem::Requirement
65
80
  requirements:
66
- - - "~>"
81
+ - - ">="
67
82
  - !ruby/object:Gem::Version
68
83
  version: 0.19.1
84
+ - - "<"
85
+ - !ruby/object:Gem::Version
86
+ version: 1.3.0
69
87
  - !ruby/object:Gem::Dependency
70
88
  name: gem-release
71
89
  requirement: !ruby/object:Gem::Requirement
@@ -173,7 +191,6 @@ files:
173
191
  - lib/kpm/system_helpers/system_proxy.rb
174
192
  - lib/kpm/tasks.rb
175
193
  - lib/kpm/tenant_config.rb
176
- - lib/kpm/tomcat_manager.rb
177
194
  - lib/kpm/trace_logger.rb
178
195
  - lib/kpm/uninstaller.rb
179
196
  - lib/kpm/utils.rb
@@ -194,7 +211,6 @@ files:
194
211
  - spec/kpm/remote/nexus_facade_spec.rb
195
212
  - spec/kpm/remote/tenant_config_spec.rb
196
213
  - spec/kpm/remote/tenant_config_spec.yml
197
- - spec/kpm/remote/tomcat_manager_spec.rb
198
214
  - spec/kpm/unit/actions_spec.rb
199
215
  - spec/kpm/unit/base_artifact_spec.rb
200
216
  - spec/kpm/unit/cpu_information_spec.rb
@@ -1,95 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'pathname'
4
- require 'net/http'
5
- require 'uri'
6
-
7
- module KPM
8
- class TomcatManager
9
- DOWNLOAD_URL = 'https://s3.amazonaws.com/kb-binaries/apache-tomcat-7.0.42.tar.gz'
10
-
11
- def initialize(tomcat_dir, logger)
12
- @tomcat_dir = Pathname.new(tomcat_dir)
13
- @logger = logger
14
- end
15
-
16
- def download
17
- uri = URI.parse(DOWNLOAD_URL)
18
-
19
- path = nil
20
- Dir.mktmpdir do |dir|
21
- file = Pathname.new(dir).join('tomcat.tar.gz')
22
-
23
- @logger.info "Starting download of #{DOWNLOAD_URL} to #{file}"
24
- Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
25
- File.open(file, 'wb+') do |f|
26
- http.get(uri.path) do |body|
27
- f.write(body)
28
- end
29
- end
30
- end
31
-
32
- path = Utils.unpack_tgz(file.to_s, @tomcat_dir, true)
33
- end
34
-
35
- @logger.info "Successful installation of #{DOWNLOAD_URL} to #{path}"
36
- path
37
- end
38
-
39
- def setup
40
- # Remove default webapps
41
- %w[ROOT docs examples host-manager manager].each do |webapp|
42
- FileUtils.rm_rf(@tomcat_dir.join('webapps').join(webapp))
43
- end
44
-
45
- # Update Root.xml
46
- root_xml_dir = @tomcat_dir.join('conf').join('Catalina').join('localhost')
47
- FileUtils.mkdir_p(root_xml_dir)
48
- File.write(root_xml_dir.join('ROOT.xml'), '<Context></Context>')
49
-
50
- # Setup default properties
51
- setenv_sh_path = @tomcat_dir.join('bin').join('setenv.sh')
52
-
53
- File.write(setenv_sh_path, "export CATALINA_OPTS=\"$CATALINA_OPTS #{default_java_properties}\"")
54
-
55
- @tomcat_dir.join('webapps').join('ROOT.war').to_s
56
- end
57
-
58
- def help
59
- "Tomcat installed at #{@tomcat_dir}
60
- Start script: #{@tomcat_dir.join('bin').join('startup.sh')}
61
- Stop script: #{@tomcat_dir.join('bin').join('shutdown.sh')}
62
- Logs: #{@tomcat_dir.join('logs')}"
63
- end
64
-
65
- private
66
-
67
- def default_java_properties
68
- <<HEREDOC.gsub(/\s+/, ' ').strip
69
- -server
70
- -showversion
71
- -XX:+PrintCommandLineFlags
72
- -XX:+UseCodeCacheFlushing
73
- -XX:PermSize=512m
74
- -XX:MaxPermSize=1G
75
- -Xms1G
76
- -Xmx2G
77
- -XX:+CMSClassUnloadingEnabled
78
- -XX:-OmitStackTraceInFastThrow
79
- -XX:+UseParNewGC
80
- -XX:+UseConcMarkSweepGC
81
- -XX:+CMSConcurrentMTEnabled
82
- -XX:+CMSParallelRemarkEnabled
83
- -XX:+UseCMSInitiatingOccupancyOnly
84
- -XX:CMSInitiatingOccupancyFraction=70
85
- -XX:+ScavengeBeforeFullGC
86
- -XX:+CMSScavengeBeforeRemark
87
- -XX:NewSize=600m
88
- -XX:MaxNewSize=900m
89
- -XX:SurvivorRatio=10
90
- -XX:+DisableExplicitGC
91
- -Djava.security.egd=file:/dev/./urandom
92
- HEREDOC
93
- end
94
- end
95
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe KPM::TomcatManager do
6
- before(:all) do
7
- @logger = Logger.new(STDOUT)
8
- @logger.level = Logger::INFO
9
- end
10
-
11
- it 'should be able to download and unpack tomcat' do
12
- Dir.mktmpdir do |dir|
13
- manager = KPM::TomcatManager.new(dir, @logger)
14
-
15
- tomcat_path = manager.download
16
- expect(tomcat_path).not_to be_nil
17
-
18
- root_war_path = manager.setup
19
- expect(root_war_path).not_to be_nil
20
- end
21
- end
22
- end