kpm 0.6.5 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e86208a5b11aa2c0c5f914d7e8c70ab4c74dc9f8
4
- data.tar.gz: 8a9e29308270a62cd192fe424ebfbf1eba2e9e46
3
+ metadata.gz: 7ec0b30c3a3f484a644c3c0fd3acb09eb96bdfd9
4
+ data.tar.gz: 0689377a0a813762ee6ba813cb2933024221a6ea
5
5
  SHA512:
6
- metadata.gz: 75daef8b5b6af030b35520ddfe12f9d777f82a22eb80d7a868349c8d278beaa5bdf8992a9dc1a83e5ba0daf390921c25a10e336e86b9f2dff8479016138df628
7
- data.tar.gz: 561f13dd6c05c4aef2390b5d5ee82924994233809a285596daead52e8a6e4c6e9f8d897fa8d10be97db049034b14b1227270f660adeb7e88aa5518aee6a3ed97
6
+ metadata.gz: 36757fc62aaf0595515911d728e15c89742ac15656a64f29cc8a46c14b9f9812746c848e0c595b329cd2ba55ac1027d023badae2d59407eb85d9edd118f8b4cc
7
+ data.tar.gz: 1ccb83dc7d4671a54ad188046d8378fd8bb99445e378a4525ddeb8e17963a8e770120c30495a4c378f1113711a5f95ad293c57d06aa0022ffd92a6524006ac41
@@ -1,100 +1,133 @@
1
+ :toc: macro
2
+ :toc-title:
3
+ :toclevels: 9
4
+
5
+ [[kpm-the-kill-bill-package-manager]]
1
6
  # KPM: the Kill Bill Package Manager
2
7
 
3
8
  The goal of KPM is to facilitate the installation of Kill Bill, its plugins and Kaui.
4
9
 
5
10
  kpm can be used interactively to search and download individual artifacts (Kill Bill war, plugins, etc.) or to perform an automatic Kill Bill installation using a configuration file.
6
11
 
7
- ## Prerequisites
8
-
9
- ### Java
10
-
11
- Kill Bill runs on the [Java](https://www.java.com/en/download/) platform, version 6 and above (8 is recommended).
12
+ toc::[]
12
13
 
14
+ [[installation]]
13
15
  ## Installation
14
16
 
17
+ [[pre-built-binaries-recommended-linux-and-macos-only]]
15
18
  ### Pre-built binaries (recommended, Linux and MacOS only)
16
19
 
17
20
  Note that this installation method assumes `/bin/bash` to be available on your system.
18
21
 
19
- KPM builds are available on [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.kill-bill.billing.installer%22%20AND%20a%3A%22kpm%22) with coordinates `org.kill-bill.billing.installer:kpm`.
22
+ KPM builds are available on http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.kill-bill.billing.installer%22%20AND%20a%3A%22kpm%22[Maven Central] with coordinates `org.kill-bill.billing.installer:kpm`.
20
23
 
21
24
  Download the package matching your architecture.
22
25
 
26
+ [[through-rubygems]]
23
27
  ### Through Rubygems
24
28
 
25
29
  Ruby is required to run KPM itself (it is not a dependency of Kill Bill).
26
30
 
27
- Ruby 2.1+ or JRuby 1.7.20+ is recommended. If you don't have a Ruby installation yet, use [RVM](https://rvm.io/rvm/install):
31
+ Ruby 2.1+ or JRuby 1.7.20+ is recommended. If you dont have a Ruby installation yet, use https://rvm.io/rvm/install[RVM]:
28
32
 
29
- ```
33
+ ....
30
34
  gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
31
35
  \curl -sSL https://get.rvm.io | bash -s stable --ruby
32
- ```
36
+ ....
33
37
 
34
38
  After following the post-installation instructions, you should have access to the `ruby` and `gem` executables.
35
39
 
36
40
  You can then run:
37
41
 
38
- gem install kpm
42
+ ....
43
+ gem install kpm
44
+ ....
39
45
 
46
+ [[quick-start]]
40
47
  ## Quick start
41
48
 
42
49
  The following commands
43
50
 
44
- mkdir killbill
45
- cd killbill
46
- kpm install
51
+ ....
52
+ mkdir killbill
53
+ cd killbill
54
+ kpm install
55
+ ....
47
56
 
48
- will setup [Kill Bill](https://github.com/killbill/killbill) and [Kaui](https://github.com/killbill/killbill-admin-ui-standalone), i.e.:
57
+ will setup https://github.com/killbill/killbill[Kill Bill] and https://github.com/killbill/killbill-admin-ui-standalone[Kaui], i.e.:
49
58
 
50
- * [Tomcat](http://tomcat.apache.org/) (open-source Java web server) is setup in the `killbill` directory
59
+ * http://tomcat.apache.org/[Tomcat] (open-source Java web server) is setup in the `killbill` directory
51
60
  * The Kill Bill application (war) is installed in the `killbill/webapps` directory
52
61
  * The Kill Bill UI (Kaui war) is installed in the `killbill/webapps` directory
53
62
  * Default plugins are installed in the `/var/tmp/bundles` directory, among them:
54
- * `jruby.jar`, required to run Ruby plugins
55
- * the [KPM plugin](https://github.com/killbill/killbill-kpm-plugin), required to (un-)install plugins at runtime
63
+ * `jruby.jar`, required to run Ruby plugins
64
+ * the https://github.com/killbill/killbill-kpm-plugin[KPM plugin], required to (un-)install plugins at runtime
56
65
 
57
66
  To start Kill Bill, simply run
58
67
 
59
- ./bin/catalina.sh run
68
+ ....
69
+ ./bin/catalina.sh run
70
+ ....
60
71
 
61
72
  You can then verify Kill Bill is running by going to http://127.0.0.1:8080/kaui.
62
73
 
74
+ [[using-kpm]]
63
75
  ## Using KPM
64
76
 
77
+ [[custom-installation-through-kpm.yml-file]]
65
78
  ### Custom Installation Through `kpm.yml` File
66
79
 
67
80
  KPM allows you to specify a configuration file, `kpm.yml`, to describe what should be installed. The configuration file is a `yml`. The following shows the syntax of the `kpm.yml` file:
68
81
 
69
- killbill:
70
- version: 0.14.0
71
- plugins:
72
- java:
73
- - name: analytics
74
- ruby:
75
- - name: stripe
82
+ ....
83
+ killbill:
84
+ version: 0.18.0
85
+ plugins:
86
+ java:
87
+ - name: analytics
88
+ ruby:
89
+ - name: stripe
90
+ ....
76
91
 
77
92
  This instructs kpm to:
78
93
 
79
- * Download Kill Bill version 0.14.0
80
- * Setup the [Analytics](https://github.com/killbill/killbill-analytics-plugin) (Java) plugin and the [Stripe](https://github.com/killbill/killbill-stripe-plugin) (Ruby) plugin
94
+ * Download Kill Bill version 0.18.0
95
+ * Setup the https://github.com/killbill/killbill-analytics-plugin[Analytics] (Java) plugin and the https://github.com/killbill/killbill-stripe-plugin[Stripe] (Ruby) plugin
81
96
 
82
97
  To start the installation:
83
98
 
84
- kpm install kpm.yml
85
-
86
- Common configuration options:
87
-
88
- * `jvm`: JVM properties
89
- * `killbill`: Kill Bill properties
90
- * `plugins_dir`: OSGI bundles and plugins base directory
91
- * `webapp_path`: path for the Kill Bill war (if specified, Tomcat isn't downloaded)
92
-
93
- There are many more options you can specify. Take a look at the configuration file used in the [Docker](https://github.com/killbill/killbill-cloud/blob/master/docker/templates/killbill/latest/kpm.yml.erb) image for example.
94
-
99
+ ....
100
+ kpm install kpm.yml
101
+ ....
102
+
103
+ Here is a more advanced example:
104
+
105
+ ....
106
+ killbill:
107
+ group_id: org.kill-bill.billing
108
+ artifact_id: killbill-profiles-killbill
109
+ version: 0.18.10
110
+ default_bundles_version: 0.36.11
111
+ nexus:
112
+ ssl_verify: false
113
+ url: http://nexus.acme
114
+ repository: public-all
115
+ plugins:
116
+ java:
117
+ - name: analytics
118
+ - name: acme:custom
119
+ artifact_id: custom-plugin
120
+ version: 0.0.1-SNAPSHOT
121
+ ruby:
122
+ - name: kpm
123
+ plugins_dir: /var/tmp/bundles
124
+ webapp_path: /var/lib/tomcat/webapps/ROOT.war
125
+ ....
126
+
127
+ [[custom-downloads]]
95
128
  ### Custom Downloads
96
129
 
97
- You can also download specific versions/artifacts directly with the following commands -- bypassing the kpm.yml file:
130
+ You can also download specific versions/artifacts directly with the following commands bypassing the kpm.yml file:
98
131
 
99
132
  * `kpm pull_kaui_war <version>`
100
133
  * `kpm pull_kb_server_war <version>`
@@ -103,28 +136,28 @@ You can also download specific versions/artifacts directly with the following co
103
136
 
104
137
  For more details see `kpm help`.
105
138
 
139
+ [[dev-mode]]
106
140
  ### Dev Mode
107
141
 
108
- If you are a developer and either modifying an existing plugin or creating a new plugin, KPM can be used to install the code of your plugin. Before we look at KPM commands, make sure you read the [Plugin Development Documentation](http://docs.killbill.io/0.16/plugin_development.html).
142
+ If you are a developer and either modifying an existing plugin or creating a new plugin, KPM can be used to install the code of your plugin. Before going further, make sure you read the http://docs.killbill.io/latest/plugin_development.html[Plugin Development Documentation] first.
109
143
 
110
- Let 's assume we are modifying the code for the (ruby) cybersource plugin. You would have to first build the plugin package, and then you could use KPM to install the plugin. We suggest you specify a `plugin_key` with a namespace `dev:` to make it clear this is not a released version. Also in the case of `ruby`, the package already contains all the directory structure including the version, so only the location of the `tar.gz` needs to be specified.
144
+ Lets assume you are modifying the code for the (Ruby) CyberSource plugin. You would have to first build the plugin package, and then you could use KPM to install the plugin. We suggest you specify a `plugin_key` with a namespace `dev:` to make it clear this is not a released version.
111
145
 
112
- ```
113
- > kpm install_ruby_plugin 'dev:cybersource' --from-source-file="<PATH_TO>/killbill-cybersource-3.3.0.tar.gz"
114
- ```
146
+ ....
147
+ kpm install_ruby_plugin 'dev:cybersource' --from-source-file="<PATH_TO>/killbill-cybersource-3.3.0.tar.gz"
148
+ ....
115
149
 
116
- Let 's assume now that we are modifying the code for the (java) adyen plugin. The plugin first needs to be built using the `maven-bundle-plugin` to produce the OSGI jar under the `target` directory. Then, this `jar` can be installed but here we also need to specify a version since the archive does not embed any filesystem structure but only contains the binary (jar). The same applies with regard to the `plugin_key` where we suggest to specify a namespace `dev:`.
150
+ Lets assume now that you are modifying the code for the (Java) Adyen plugin. The plugin first needs to be built using the `maven-bundle-plugin` to produce the OSGI jar under the `target` directory. Then, this `jar` can be installed using KPM (you would also need to specify a version here since the archive does not embed any metadata, unlike Ruby plugins packages). The same applies with regard to the `plugin_key` where we suggest to specify a namespace `dev:`.
117
151
 
118
- ```
119
- > kpm install_java_plugin 'dev:adyen' --from-source-file="<PATH_TO>/adyen-plugin-0.3.2-SNAPSHOT.jar" --version="0.3.2"
120
- ```
152
+ ....
153
+ kpm install_java_plugin 'dev:adyen' --from-source-file="<PATH_TO>/adyen-plugin-0.3.2-SNAPSHOT.jar" --version="0.3.2"
154
+ ....
121
155
 
122
- The command `kpm inspect` can be used to see what has been installed. In the case of `dev` plugin most info related to `GROUP ID`, `ARTIFACT ID`, `PACKAGING` and `SHA1` will be missing because no real download occured.
156
+ The command `kpm inspect` can be used to see what has been installed. In the case of `dev` plugins, most of the infofrmation related to `GROUP ID`, `ARTIFACT ID`, `PACKAGING` and `SHA1` will be missing because no real download occured.
123
157
 
158
+ Finally, when it is time to use a released version of a plugin, we first recommend to uninstall the `dev` version, by using the `kpm uninstall` command and using the `plugin_key`, and then installing the released version. For instance the following sequence could happen:
124
159
 
125
- Finally, when it is time to use a released version of a plugin, we first recommend to uninstall the `dev` version, by using the `kpm uninstall` command and using the `plugin_key` and then installing the released version. For instance the following sequence could happen:
126
-
127
- ```
160
+ ....
128
161
  > kpm inspect
129
162
  ___________________________________________________________________________________________________________________________
130
163
  | PLUGIN NAME | PLUGIN KEY | TYPE | GROUP ID | ARTIFACT ID | PACKAGING | VERSIONS sha1=[], def=(*), del=(x) |
@@ -155,8 +188,12 @@ ________________________________________________________________________________
155
188
  | killbill-cybersource | cybersource | ruby | org.kill-bill.billing.plugin.ruby | cybersource-plugin | tar.gz | 4.0.2[e0901f..](*) |
156
189
  | adyen | dev:adyen | java | ??? | ??? | ??? | 0.3.2[???](*) |
157
190
  _______________________________________________________________________________________________________________________________________________________
191
+ ....
192
+
193
+ [[internals]]
194
+ ## Internals
158
195
 
159
- ```
196
+ [[test-required-setups]]
160
197
  ### Test required setups
161
198
 
162
199
  There are 3 suites of tests for KPM (see `rake -T`):
@@ -165,46 +202,44 @@ There are 3 suites of tests for KPM (see `rake -T`):
165
202
  * `rake test:remote:spec` : Test suite that relies on maven artifacts
166
203
  * `rake test:mysql:spec` : Test suite that requires an instance of Kill Bill server running and a properly setup database
167
204
 
205
+ [[kpm-unit-test]]
168
206
  #### KPM Unit test
169
207
 
170
- Unit tests don't require any third party system or configuration.
208
+ Unit tests dont require any third party system or configuration.
171
209
 
210
+ [[kpm-remote-test]]
172
211
  #### KPM remote test
173
212
 
174
- Test suite that verifies the following:\
213
+ Test suite that verifies the following:
175
214
 
176
215
  * KPM `install` command by pulling artifacts from maven repository
177
216
  * KPM `migration` command. This requires setting the `TOKEN` system property with a valid GITHUB api token.
178
217
 
218
+ [[kpm-mysql-test]]
179
219
  #### KPM mysql test
180
220
 
181
221
  Test suite that requires an instance of `mysql` running and verifies the following:
182
222
 
183
- * KPM `account` command: The `account_spec.yml` file needs to be modified with correct credentials and user must have correct privileges; also the database schema must not exist.
184
- In addition, one must start an instance of a Kill Bill server
185
-
186
- ## Internals
223
+ * KPM `account` command: The `account_spec.yml` file needs to be modified with correct credentials and user must have correct privileges; also the database schema must not exist. In addition, one must start an instance of a Kill Bill server
187
224
 
225
+ [[plugin-keys]]
188
226
  ### Plugin Keys
189
227
 
190
- In the `kpm.yml` example provided above, the plugins are named using their `pluginKey` (the value for the `name` in the `kpm.yml`) . The `pluginKey` is the identifier for the plugin:
191
- * For plugins maintained by the Kill Bill team, this identifier matches the key in the [file based repository](https://github.com/killbill/killbill-cloud/blob/master/kpm/lib/kpm/plugins_directory.yml) of well-known plugins
192
- * For other plugins, this key is either specified when installing the plugin through api call, or default to the `pluginName`. For more information, please refer to the Plugin Developer Guide.
228
+ In the `kpm.yml` example provided above, the plugins are named using their `pluginKey` (the value for the `name` in the `kpm.yml`) . The `pluginKey` is the identifier for the plugin: * For plugins maintained by the Kill Bill team, this identifier matches the key in the https://github.com/killbill/killbill-cloud/blob/master/kpm/lib/kpm/plugins_directory.yml[file based repository] of well-known plugins * For other plugins, this key is either specified when installing the plugin through api call, or default to the `pluginName`. For more information, please refer to the Plugin Developer Guide.
193
229
 
230
+ [[caching]]
194
231
  ### Caching
195
232
 
196
233
  KPM relies on the `kpm.yml` file to know what to install, and as it installs the pieces, it keeps track of what was installed so that if it is invoked again, it does not download again the same binaries. The generic logic associated with that file is the following:
197
234
 
198
- 1. When installing a binary (`war`, `jar`, `tar.gz`..), KPM will download both the binary and the `sha1` from the server, compute the `sha1` for the binary and compare the two (verify that binary indeed matches its remote `sha1`). Then, binary is installed and `sha1.yml` file is updated. The `sha1` entry in that `sha1.yml` file will now represent the local `sha1` version (note that for `tar.gz` binaries which have been uncompressed, the local `sha1` is not anymore easily recomputable).
199
- 2. When attempting to download again the same binary, KPM will compare the value in the `sha1.yml` and the one on the remote server and if those match, it will not download the binary again.
235
+ 1. When installing a binary (`war`, `jar`, `tar.gz`..), KPM will download both the binary and the `sha1` from the server, compute the `sha1` for the binary and compare the two (verify that binary indeed matches its remote `sha1`). Then, binary is installed and `sha1.yml` file is updated. The `sha1` entry in that `sha1.yml` file will now represent the local `sha1` version (note that for `tar.gz` binaries which have been uncompressed, the local `sha1` is not anymore easily recomputable).
236
+ 2. When attempting to download again the same binary, KPM will compare the value in the `sha1.yml` and the one on the remote server and if those match, it will not download the binary again.
200
237
 
201
238
  There are some non standard scenario that could occur in case of users tampering with the data (or remove server unavailable):
202
239
 
203
240
  * Remote `sha1` is not available: Binary will be downloaded again (and no `sha1` check can be performed)
204
- * `sha1.yml` does not exist: Binary will be downloaded again
205
- * `sha1` entry in the `sha1.yml` exists but has the special value `SKIP` : Binary will *not* be downloaded again
241
+ * `sha1.yml` does not exist: Binary will be downloaded again
242
+ * `sha1` entry in the `sha1.yml` exists but has the special value `SKIP` : Binary will _not_ be downloaded again
206
243
  * Binary does not exist on the file system (or has been replaced with something else): KPM will ignore. Note that correct way to remove plugins is to use the `KPM uninstall` command.
207
244
 
208
-
209
245
  Note that you can override that behavior with the `--force-download` switch.
210
-
@@ -42,7 +42,7 @@ Gem::Specification.new do |s|
42
42
  s.add_dependency 'highline', '~> 1.6.21'
43
43
  s.add_dependency 'thor', '~> 0.19.1'
44
44
  s.add_dependency 'rubyzip', '~>1.2.0'
45
- s.add_dependency 'killbill-client', '~> 1.0'
45
+ s.add_dependency 'killbill-client', '~> 2.5.0'
46
46
 
47
47
  s.add_development_dependency 'rake', '>= 10.0.0', '< 11.0.0'
48
48
  s.add_development_dependency 'rspec', '~> 2.12.0'
@@ -16,7 +16,8 @@
16
16
  :0.15: 0.2.1
17
17
  :0.16: 0.3.2
18
18
  :0.17: 0.4.10
19
- :0.18: 0.5.7
19
+ :0.18: 0.5.10
20
+ :0.19: 0.6.0
20
21
  :require:
21
22
  - :org.killbill.billing.plugin.adyen.merchantAccount
22
23
  - :org.killbill.billing.plugin.adyen.username
@@ -30,7 +31,8 @@
30
31
  :0.16: 3.0.2
31
32
  :0.17: 4.0.5
32
33
  :0.18: 4.2.5
33
- :0.19: 5.0.2
34
+ :0.19: 5.1.4
35
+ :0.20: 6.0.0
34
36
  :avatax:
35
37
  :type: :java
36
38
  :versions:
@@ -38,7 +40,8 @@
38
40
  :0.15: 0.2.0
39
41
  :0.16: 0.3.0
40
42
  :0.18: 0.4.1
41
- :0.19: 0.5.0
43
+ :0.19: 0.5.1
44
+ :0.20: 0.6.0
42
45
  :require:
43
46
  - :org.killbill.billing.plugin.avatax.url
44
47
  - :org.killbill.billing.plugin.avatax.accountNumber
@@ -65,7 +68,7 @@
65
68
  :0.14: 1.0.0
66
69
  :0.15: 3.3.0
67
70
  :0.16: 4.0.12
68
- :0.18: 5.2.4
71
+ :0.18: 5.2.7
69
72
  :require:
70
73
  - :login
71
74
  - :password
@@ -86,7 +89,9 @@
86
89
  :versions:
87
90
  :0.14: 0.1.0
88
91
  :0.16: 0.2.0
89
- :0.18: 0.3.0
92
+ :0.18: 0.3.1
93
+ :0.19: 0.4.0
94
+ :0.20: 0.5.0
90
95
  :firstdata_e4:
91
96
  :type: :ruby
92
97
  :artifact_id: firstdata-e4-plugin
@@ -116,13 +121,15 @@
116
121
  :0.16: 0.0.5
117
122
  :0.17: 1.0.0
118
123
  :0.18: 1.1.2
119
- :0.19: 1.2.2
124
+ :0.19: 1.2.4
125
+ :0.20: 1.3.0
120
126
  :litle:
121
127
  :type: :ruby
122
128
  :versions:
123
129
  :0.14: 2.0.0
124
130
  :0.16: 3.0.0
125
131
  :0.18: 4.0.0
132
+ :0.20: 5.0.0
126
133
  :require:
127
134
  - :account_id
128
135
  - :merchant_id
@@ -141,7 +148,7 @@
141
148
  :type: :ruby
142
149
  :versions:
143
150
  :0.16: 0.0.2
144
- :0.18: 0.1.8
151
+ :0.18: 0.1.10
145
152
  :require:
146
153
  - :login
147
154
  - :password
@@ -150,7 +157,8 @@
150
157
  :type: :java
151
158
  :artifact_id: bridge-plugin
152
159
  :versions:
153
- :0.19: 0.0.2
160
+ :0.19: 0.0.12
161
+ :0.20: 0.1.0
154
162
  :payeezy:
155
163
  :type: :java
156
164
  :versions:
@@ -173,7 +181,8 @@
173
181
  :0.14: 2.0.0
174
182
  :0.15: 3.0.0
175
183
  :0.16: 4.1.7
176
- :0.18: 5.0.6
184
+ :0.18: 5.0.9
185
+ :0.20: 6.0.0
177
186
  :require:
178
187
  - :signature
179
188
  - :login
@@ -194,7 +203,9 @@
194
203
  :type: :ruby
195
204
  :artifact_id: payment-test-plugin
196
205
  :versions:
197
- :0.18: 4.3.0
206
+ :0.18: 4.2.0
207
+ :0.19: 5.0.0
208
+ :0.20: 6.0.0
198
209
  :securenet:
199
210
  :type: :ruby
200
211
  :versions:
@@ -211,6 +222,8 @@
211
222
  :0.16: 3.0.3
212
223
  :0.17: 4.0.0
213
224
  :0.18: 4.1.1
225
+ :0.19: 5.0.0
226
+ :0.20: 6.0.0
214
227
  :require:
215
228
  - :api_secret_key
216
229
  :zendesk:
@@ -67,7 +67,7 @@ module KPM
67
67
  def create_sha1_directory_if_missing
68
68
  sha1_dir = Pathname(@sha1_file).dirname
69
69
  if ! File.directory?(sha1_dir)
70
- Dir.mkdir(sha1_dir)
70
+ FileUtils.mkdir_p(sha1_dir)
71
71
  end
72
72
  end
73
73
 
@@ -1,3 +1,3 @@
1
1
  module KPM
2
- VERSION = '0.6.5'
2
+ VERSION = '0.7.0'
3
3
  end
data/pom.xml CHANGED
@@ -26,7 +26,7 @@
26
26
  <groupId>org.kill-bill.billing.installer</groupId>
27
27
  <artifactId>kpm</artifactId>
28
28
  <packaging>pom</packaging>
29
- <version>0.6.5</version>
29
+ <version>0.7.0</version>
30
30
  <name>KPM</name>
31
31
  <url>http://github.com/killbill/killbill-cloud</url>
32
32
  <description>KPM: the Kill Bill Package Manager</description>
@@ -13,6 +13,13 @@ describe KPM::Sha1Checker do
13
13
  @sha1_checker = KPM::Sha1Checker.from_file(@tmp_config)
14
14
  end
15
15
 
16
+ it 'should create intermediate directories' do
17
+ Dir.mktmpdir do |dir|
18
+ config = File.join(dir, 'foo', 'bar', 'baz', 'sha1_test.yml')
19
+ KPM::Sha1Checker.from_file(config)
20
+ end
21
+ end
22
+
16
23
  it 'should find matching sha1' do
17
24
  existing = @sha1_checker.sha1('killbill-plugin-match-1.0.0.tar.gz')
18
25
  existing.should_not be_nil
@@ -48,14 +55,12 @@ describe KPM::Sha1Checker do
48
55
  end
49
56
 
50
57
  it 'should add allow to modify an entry and find them all' do
51
-
52
58
  existing = @sha1_checker.sha1('killbill-plugin-match-1.0.0.tar.gz')
53
59
  existing.should_not be_nil
54
60
  existing.should == 'fce068c3fd5f95646ce0d09852f43ff67f06f0b9'
55
61
 
56
62
  @sha1_checker.add_or_modify_entry!('killbill-plugin-match-1.0.0.tar.gz', 'dde068c3fd5f95646ce0d09852f43ff67f06f0aa')
57
63
 
58
-
59
64
  existing = @sha1_checker.sha1('killbill-plugin-match-1.0.0.tar.gz')
60
65
  existing.should_not be_nil
61
66
  existing.should == 'dde068c3fd5f95646ce0d09852f43ff67f06f0aa'
@@ -82,7 +87,6 @@ describe KPM::Sha1Checker do
82
87
  end
83
88
 
84
89
  it 'should work with empty config' do
85
-
86
90
  tmp_destination_dir = Dir.tmpdir()
87
91
  empty_config = File.join(tmp_destination_dir, 'sha1_test.yml')
88
92
  if File.exists?(empty_config)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.7.0
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: 2018-03-19 00:00:00.000000000 Z
11
+ date: 2018-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: 2.5.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: 2.5.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -110,7 +110,7 @@ files:
110
110
  - ".gemrelease"
111
111
  - ".gitignore"
112
112
  - Gemfile
113
- - README.md
113
+ - README.adoc
114
114
  - Rakefile
115
115
  - bin/kpm
116
116
  - install_example.yml
@@ -202,8 +202,31 @@ required_rubygems_version: !ruby/object:Gem::Requirement
202
202
  version: '0'
203
203
  requirements: []
204
204
  rubyforge_project:
205
- rubygems_version: 2.6.14
205
+ rubygems_version: 2.4.8
206
206
  signing_key:
207
207
  specification_version: 4
208
208
  summary: Kill Bill package manager.
209
- test_files: []
209
+ test_files:
210
+ - spec/kpm/remote/base_artifact_spec.rb
211
+ - spec/kpm/remote/base_installer_spec.rb
212
+ - spec/kpm/remote/installer_spec.rb
213
+ - spec/kpm/remote/kaui_artifact_spec.rb
214
+ - spec/kpm/remote/killbill_plugin_artifact_spec.rb
215
+ - spec/kpm/remote/killbill_server_artifact_spec.rb
216
+ - spec/kpm/remote/migrations_spec.rb
217
+ - spec/kpm/remote/nexus_facade_spec.rb
218
+ - spec/kpm/remote/tenant_config_spec.rb
219
+ - spec/kpm/remote/tenant_config_spec.yml
220
+ - spec/kpm/remote/tomcat_manager_spec.rb
221
+ - spec/kpm/unit/base_artifact_spec.rb
222
+ - spec/kpm/unit/inspector_spec.rb
223
+ - spec/kpm/unit/installer_spec.rb
224
+ - spec/kpm/unit/plugins_directory_spec.rb
225
+ - spec/kpm/unit/plugins_manager_spec.rb
226
+ - spec/kpm/unit/sha1_checker_spec.rb
227
+ - spec/kpm/unit/sha1_test.yml
228
+ - spec/kpm/unit/uninstaller_spec.rb
229
+ - spec/kpm/unit_mysql/account_spec.rb
230
+ - spec/kpm/unit_mysql/account_spec.yml
231
+ - spec/kpm/unit_mysql/account_test_ddl.sql
232
+ - spec/spec_helper.rb