kpm 0.11.0 → 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 +4 -4
- data/.gitignore +4 -2
- data/README.adoc +0 -18
- data/kpm.gemspec +3 -3
- data/lib/kpm/installer.rb +2 -17
- data/lib/kpm/nexus_helper/nexus_api_calls_v2.rb +1 -1
- data/lib/kpm/plugins_directory.yml +2 -2
- data/lib/kpm/version.rb +1 -1
- data/lib/kpm.rb +0 -1
- data/packaging/Gemfile +1 -4
- data/packaging/kpm.sh +1 -1
- data/pom.xml +11 -6
- data/tasks/package.rake +67 -28
- metadata +43 -14
- data/lib/kpm/tomcat_manager.rb +0 -95
- data/release.sh +0 -60
- data/spec/kpm/remote/tomcat_manager_spec.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92f89695b531e939275ac653417d228d51b897570504418032418797a56674bf
|
4
|
+
data.tar.gz: acd577c2a29a56c50c0daeacb09a62f7fcf6068650d1ba8ed2e527d6f9db2962
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c44713659fe2517572916f45722df1d6ae7b8d639cb24b227ba161386e104df0c2dcf3f38f7a735cfe0f399cbe5d791dc5802cda6a8a73ec791c5ba9853adfd7
|
7
|
+
data.tar.gz: fd47e470a0df6c75785383a45857a93909ff44d4464136a57ad3f4d27e9331a2b9d31cb4a08834885ee099292a7df5ea6ee9417bfa94fa3c93801114c3af15d3
|
data/.gitignore
CHANGED
@@ -2,10 +2,12 @@ Gemfile.lock
|
|
2
2
|
pkg
|
3
3
|
packaging/tmp
|
4
4
|
packaging/vendor
|
5
|
-
kpm-*-linux-x86.tar.gz
|
6
5
|
kpm-*-linux-x86_64.tar.gz
|
6
|
+
kpm-*-osx-arm64.tar.gz
|
7
7
|
kpm-*-osx.tar.gz
|
8
|
-
|
8
|
+
kpm-*-noarch.tar.gz
|
9
|
+
portable-ruby-*.tar.gz
|
10
|
+
jruby-dist-*-bin.tar.gz
|
9
11
|
*.asc
|
10
12
|
.rakeTasks
|
11
13
|
pom.xml.versionsBackup
|
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/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', '
|
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', '
|
47
|
-
s.add_dependency 'thor', '
|
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'
|
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
|
-
|
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,26 +105,11 @@ 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
115
|
end
|
data/lib/kpm/version.rb
CHANGED
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/packaging/Gemfile
CHANGED
data/packaging/kpm.sh
CHANGED
@@ -11,4 +11,4 @@ unset BUNDLE_IGNORE_CONFIG
|
|
11
11
|
|
12
12
|
# Run the actual app using the bundled Ruby interpreter, with Bundler activated.
|
13
13
|
# See https://github.com/phusion/traveling-ruby/issues/58
|
14
|
-
exec "$SELFDIR/lib/ruby/bin/ruby" -rbundler/setup -rreadline $SELFDIR/lib/vendor
|
14
|
+
exec "$SELFDIR/lib/ruby/bin/ruby" -rbundler/setup -rreadline $SELFDIR/lib/vendor/*ruby/2.*/bin/kpm $@
|
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.11.
|
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>
|
@@ -147,11 +147,6 @@
|
|
147
147
|
</goals>
|
148
148
|
<configuration>
|
149
149
|
<artifacts>
|
150
|
-
<artifact>
|
151
|
-
<file>kpm-${project.version}-linux-x86.tar.gz</file>
|
152
|
-
<type>tar.gz</type>
|
153
|
-
<classifier>linux-x86</classifier>
|
154
|
-
</artifact>
|
155
150
|
<artifact>
|
156
151
|
<file>kpm-${project.version}-linux-x86_64.tar.gz</file>
|
157
152
|
<type>tar.gz</type>
|
@@ -162,6 +157,16 @@
|
|
162
157
|
<type>tar.gz</type>
|
163
158
|
<classifier>osx</classifier>
|
164
159
|
</artifact>
|
160
|
+
<artifact>
|
161
|
+
<file>kpm-${project.version}-osx-arm64.tar.gz</file>
|
162
|
+
<type>tar.gz</type>
|
163
|
+
<classifier>osx-arm64</classifier>
|
164
|
+
</artifact>
|
165
|
+
<artifact>
|
166
|
+
<file>kpm-${project.version}-noarch.tar.gz</file>
|
167
|
+
<type>tar.gz</type>
|
168
|
+
<classifier>noarch</classifier>
|
169
|
+
</artifact>
|
165
170
|
</artifacts>
|
166
171
|
</configuration>
|
167
172
|
</execution>
|
data/tasks/package.rake
CHANGED
@@ -9,33 +9,50 @@ PACKAGE_NAME = 'kpm'
|
|
9
9
|
require './lib/kpm/version'
|
10
10
|
VERSION = KPM::VERSION
|
11
11
|
|
12
|
-
# See https://
|
13
|
-
|
12
|
+
# See https://www.jruby.org/download
|
13
|
+
JRUBY_VERSION = '9.3.4.0'
|
14
|
+
# See https://github.com/Homebrew/homebrew-portable-ruby/releases
|
15
|
+
HOMEBREW_PORTABLE_RUBY_VERSION = '2.6.8_1'
|
14
16
|
|
15
17
|
# Remove unused files to reduce package size
|
16
18
|
GEMS_PATH = 'packaging/vendor/ruby/*/gems/*/'
|
17
19
|
REMOVE_FILES = %w[test tests spec README* CHANGE* Change* COPYING* LICENSE* MIT-LICENSE* doc docs examples ext/*/Makefile .gitignore .travis.yml].freeze
|
18
20
|
REMOVE_EXTENSIONS = %w[*.md *.c *.h *.rl extconf.rb *.java *.class *.so *.o].freeze
|
19
21
|
|
22
|
+
NOARCH_TARGET = 'noarch'
|
23
|
+
LINUX_X86_TARGET = 'x86_64_linux'
|
24
|
+
OSX_X86_TARGET = 'el_capitan'
|
25
|
+
OSX_ARM_TARGET = 'arm64_big_sur'
|
26
|
+
|
20
27
|
desc 'Package your app'
|
21
|
-
task package: %w[package:linux:
|
28
|
+
task package: %w[package:noarch package:linux:x86_64 package:osx:x86_64 package:osx:arm64]
|
22
29
|
|
23
30
|
namespace :package do
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
31
|
+
desc 'Package KPM (noarch)'
|
32
|
+
task noarch: [:bundle_install, "packaging/jruby-dist-#{JRUBY_VERSION}-bin.tar.gz"] do
|
33
|
+
create_package(NOARCH_TARGET, 'noarch')
|
34
|
+
end
|
29
35
|
|
36
|
+
namespace :linux do
|
30
37
|
desc 'Package KPM for Linux x86_64'
|
31
|
-
task x86_64: [:bundle_install, "packaging/
|
32
|
-
|
38
|
+
task x86_64: [:bundle_install, "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{LINUX_X86_TARGET}.bottle.tar.gz"] do
|
39
|
+
ensure_ruby_version
|
40
|
+
create_package(LINUX_X86_TARGET, 'linux-x86_64')
|
33
41
|
end
|
34
42
|
end
|
35
43
|
|
36
|
-
|
37
|
-
|
38
|
-
|
44
|
+
namespace :osx do
|
45
|
+
desc 'Package KPM for OSX x86_64'
|
46
|
+
task x86_64: [:bundle_install, "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{OSX_X86_TARGET}.bottle.tar.gz"] do
|
47
|
+
ensure_ruby_version
|
48
|
+
create_package(OSX_X86_TARGET, 'osx')
|
49
|
+
end
|
50
|
+
|
51
|
+
desc 'Package KPM for OSX arm64'
|
52
|
+
task arm64: [:bundle_install, "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{OSX_ARM_TARGET}.bottle.tar.gz"] do
|
53
|
+
ensure_ruby_version
|
54
|
+
create_package(OSX_ARM_TARGET, 'osx-arm64')
|
55
|
+
end
|
39
56
|
end
|
40
57
|
|
41
58
|
desc 'Install gems to local directory'
|
@@ -43,15 +60,12 @@ namespace :package do
|
|
43
60
|
# abort if version packaging does not exist on repository
|
44
61
|
abort "KPM #{VERSION} does not exists in the repository." unless gem_exists?
|
45
62
|
|
46
|
-
# Note! Must match TRAVELING_RUBY_VERSION above
|
47
|
-
expected_ruby_version = TRAVELING_RUBY_VERSION.split('-')[-1]
|
48
|
-
abort "You can only 'bundle install' using Ruby #{expected_ruby_version}, because that's what Traveling Ruby uses." if RUBY_VERSION !~ /#{Regexp.quote(expected_ruby_version)}/
|
49
63
|
sh 'rm -rf packaging/tmp'
|
50
64
|
sh 'mkdir -p packaging/tmp'
|
51
65
|
sh 'cp packaging/Gemfile packaging/tmp/'
|
52
66
|
sh "sed -i 's/VERSION/#{VERSION}/g' packaging/tmp/Gemfile"
|
53
67
|
|
54
|
-
sh
|
68
|
+
sh 'rm -rf packaging/vendor/ruby/2.*/bundler' # if multiple clones of same repo, may load in wrong one
|
55
69
|
|
56
70
|
Bundler.with_clean_env do
|
57
71
|
sh 'cd packaging/tmp && env BUNDLE_IGNORE_CONFIG=1 bundle install --path ../vendor --without development'
|
@@ -80,28 +94,42 @@ namespace :package do
|
|
80
94
|
end
|
81
95
|
end
|
82
96
|
|
83
|
-
file "packaging/
|
84
|
-
|
97
|
+
file "packaging/jruby-dist-#{JRUBY_VERSION}-bin.tar.gz" do
|
98
|
+
download_noarch_runtime
|
85
99
|
end
|
86
100
|
|
87
|
-
file "packaging/
|
88
|
-
|
101
|
+
file "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{LINUX_X86_TARGET}.bottle.tar.gz" do
|
102
|
+
download_portable_runtime(LINUX_X86_TARGET)
|
89
103
|
end
|
90
104
|
|
91
|
-
file "packaging/
|
92
|
-
|
105
|
+
file "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{OSX_X86_TARGET}.bottle.tar.gz" do
|
106
|
+
download_portable_runtime(OSX_X86_TARGET)
|
93
107
|
end
|
94
108
|
|
95
|
-
|
96
|
-
|
109
|
+
file "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{OSX_ARM_TARGET}.bottle.tar.gz" do
|
110
|
+
download_portable_runtime(OSX_ARM_TARGET)
|
111
|
+
end
|
112
|
+
|
113
|
+
def create_package(target, package_dir_suffix)
|
114
|
+
pom_version = %r{<version>(.*)</version>}.match(File.read("#{__dir__}/../pom.xml"))[1]
|
115
|
+
package_dir = "#{PACKAGE_NAME}-#{pom_version}-#{package_dir_suffix}"
|
97
116
|
sh "rm -rf #{package_dir}"
|
98
117
|
sh "mkdir -p #{package_dir}/lib/ruby"
|
99
|
-
|
118
|
+
if target == NOARCH_TARGET
|
119
|
+
sh "tar -xzf packaging/jruby-dist-#{JRUBY_VERSION}-bin.tar.gz -C #{package_dir}/lib/ruby --strip-components 1"
|
120
|
+
else
|
121
|
+
sh "tar -xzf packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{target}.bottle.tar.gz -C #{package_dir}/lib/ruby --strip-components 2"
|
122
|
+
end
|
100
123
|
|
101
124
|
sh "cp packaging/kpm.sh #{package_dir}/kpm"
|
102
125
|
sh "chmod +x packaging/kpm.sh #{package_dir}/kpm"
|
103
126
|
|
104
127
|
sh "cp -pR packaging/vendor #{package_dir}/lib/"
|
128
|
+
if target == NOARCH_TARGET
|
129
|
+
# Need to tweak a few things to make it work with JRuby
|
130
|
+
sh "cp #{package_dir}/lib/ruby/bin/jruby #{package_dir}/lib/ruby/bin/ruby"
|
131
|
+
sh "mv #{package_dir}/lib/vendor/ruby #{package_dir}/lib/vendor/jruby"
|
132
|
+
end
|
105
133
|
|
106
134
|
sh "cp packaging/Gemfile* #{package_dir}/lib/vendor/"
|
107
135
|
sh "sed -i 's/VERSION/#{VERSION}/g' #{package_dir}/lib/vendor/Gemfile"
|
@@ -114,9 +142,14 @@ def create_package(target)
|
|
114
142
|
sh "rm -rf #{package_dir}"
|
115
143
|
end
|
116
144
|
|
117
|
-
def
|
145
|
+
def download_noarch_runtime
|
146
|
+
sh 'mkdir -p packaging && cd packaging && curl -L -O --fail ' \
|
147
|
+
"https://repo1.maven.org/maven2/org/jruby/jruby-dist/#{JRUBY_VERSION}/jruby-dist-#{JRUBY_VERSION}-bin.tar.gz"
|
148
|
+
end
|
149
|
+
|
150
|
+
def download_portable_runtime(target)
|
118
151
|
sh 'mkdir -p packaging && cd packaging && curl -L -O --fail ' \
|
119
|
-
"https://
|
152
|
+
"https://github.com/Homebrew/homebrew-portable-ruby/releases/download/#{HOMEBREW_PORTABLE_RUBY_VERSION}/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{target}.bottle.tar.gz"
|
120
153
|
end
|
121
154
|
|
122
155
|
def gem_exists?
|
@@ -126,3 +159,9 @@ def gem_exists?
|
|
126
159
|
specification = YAML.load(response)
|
127
160
|
specification.instance_of?(Gem::Specification)
|
128
161
|
end
|
162
|
+
|
163
|
+
def ensure_ruby_version
|
164
|
+
# Note! Must match HOMEBREW_PORTABLE_RUBY_VERSION above
|
165
|
+
expected_ruby_version = HOMEBREW_PORTABLE_RUBY_VERSION.split('_')[0]
|
166
|
+
abort "You can only 'bundle install' using Ruby #{expected_ruby_version}, because that's what homebrew-portable-ruby uses." if RUBY_VERSION !~ /#{Regexp.quote(expected_ruby_version)}/
|
167
|
+
end
|
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.11.
|
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-
|
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
|
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
|
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
|
@@ -108,6 +126,20 @@ dependencies:
|
|
108
126
|
- - "~>"
|
109
127
|
- !ruby/object:Gem::Version
|
110
128
|
version: '3.9'
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: rubocop
|
131
|
+
requirement: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - "~>"
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: 0.88.0
|
136
|
+
type: :development
|
137
|
+
prerelease: false
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - "~>"
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 0.88.0
|
111
143
|
description: A package manager for Kill Bill.
|
112
144
|
email: killbilling-users@googlegroups.com
|
113
145
|
executables:
|
@@ -159,7 +191,6 @@ files:
|
|
159
191
|
- lib/kpm/system_helpers/system_proxy.rb
|
160
192
|
- lib/kpm/tasks.rb
|
161
193
|
- lib/kpm/tenant_config.rb
|
162
|
-
- lib/kpm/tomcat_manager.rb
|
163
194
|
- lib/kpm/trace_logger.rb
|
164
195
|
- lib/kpm/uninstaller.rb
|
165
196
|
- lib/kpm/utils.rb
|
@@ -168,7 +199,6 @@ files:
|
|
168
199
|
- packaging/bundler-config
|
169
200
|
- packaging/kpm.sh
|
170
201
|
- pom.xml
|
171
|
-
- release.sh
|
172
202
|
- spec/kpm/remote/base_artifact_spec.rb
|
173
203
|
- spec/kpm/remote/base_installer_spec.rb
|
174
204
|
- spec/kpm/remote/cloudsmith_api_calls_spec.rb
|
@@ -181,7 +211,6 @@ files:
|
|
181
211
|
- spec/kpm/remote/nexus_facade_spec.rb
|
182
212
|
- spec/kpm/remote/tenant_config_spec.rb
|
183
213
|
- spec/kpm/remote/tenant_config_spec.yml
|
184
|
-
- spec/kpm/remote/tomcat_manager_spec.rb
|
185
214
|
- spec/kpm/unit/actions_spec.rb
|
186
215
|
- spec/kpm/unit/base_artifact_spec.rb
|
187
216
|
- spec/kpm/unit/cpu_information_spec.rb
|
@@ -223,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
223
252
|
- !ruby/object:Gem::Version
|
224
253
|
version: '0'
|
225
254
|
requirements: []
|
226
|
-
rubygems_version: 3.0.
|
255
|
+
rubygems_version: 3.0.3.1
|
227
256
|
signing_key:
|
228
257
|
specification_version: 4
|
229
258
|
summary: Kill Bill package manager.
|
data/lib/kpm/tomcat_manager.rb
DELETED
@@ -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
|
data/release.sh
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
set -e
|
4
|
-
|
5
|
-
BUNDLE=${BUNDLE-"bundle exec"}
|
6
|
-
MVN=${MVN-"mvn"}
|
7
|
-
|
8
|
-
if [ 'GNU' != "$(tar --help | grep GNU | head -1 | awk '{print $1}')" ]; then
|
9
|
-
echo 'Unable to release: make sure to use GNU tar'
|
10
|
-
exit 1
|
11
|
-
fi
|
12
|
-
|
13
|
-
# See TRAVELING_RUBY_VERSION in tasks/package.rake
|
14
|
-
if [[ "$(ruby --version 2>&1 | tail -1 | awk '{print $2}')" != 2.2.2* ]]; then
|
15
|
-
echo 'Ruby version 2.2.2 is required'
|
16
|
-
exit 1
|
17
|
-
fi
|
18
|
-
|
19
|
-
VERSION=`grep -E '<version>([0-9]+\.[0-9]+\.[0-9]+)</version>' pom.xml | sed 's/[\t \n]*<version>\(.*\)<\/version>[\t \n]*/\1/'`
|
20
|
-
if [[ -z "$NO_RELEASE" && "$VERSION" != "$(ruby -r./lib/kpm/version.rb -e "print KPM::VERSION")" ]]; then
|
21
|
-
echo 'Unable to release: make sure the versions in pom.xml and VERSION match'
|
22
|
-
exit 1
|
23
|
-
fi
|
24
|
-
|
25
|
-
if [[ -z "$NO_RELEASE" ]]; then
|
26
|
-
echo 'Pushing the gem to Rubygems'
|
27
|
-
$BUNDLE rake release
|
28
|
-
fi
|
29
|
-
|
30
|
-
# Wait for the gem to be propagated
|
31
|
-
sleep 15
|
32
|
-
|
33
|
-
$BUNDLE rake package
|
34
|
-
|
35
|
-
if [[ -z "$NO_RELEASE" ]]; then
|
36
|
-
GOAL=gpg:sign-and-deploy-file
|
37
|
-
REPOSITORY_ID=ossrh-releases
|
38
|
-
URL=https://oss.sonatype.org/service/local/staging/deploy/maven2/
|
39
|
-
REPO_VERSION=$VERSION
|
40
|
-
else
|
41
|
-
GOAL=deploy:deploy-file
|
42
|
-
REPOSITORY_ID=sonatype-nexus-snapshots
|
43
|
-
URL=https://oss.sonatype.org/content/repositories/snapshots/
|
44
|
-
REPO_VERSION="$VERSION-SNAPSHOT"
|
45
|
-
fi
|
46
|
-
|
47
|
-
echo "Pushing artifacts to Maven Central"
|
48
|
-
$MVN $GOAL \
|
49
|
-
-DgroupId=org.kill-bill.billing.installer \
|
50
|
-
-DartifactId=kpm \
|
51
|
-
-Dversion=$REPO_VERSION \
|
52
|
-
-Dpackaging=tar.gz \
|
53
|
-
-DrepositoryId=$REPOSITORY_ID \
|
54
|
-
-Durl=$URL \
|
55
|
-
-Dfile=kpm-$VERSION-linux-x86_64.tar.gz \
|
56
|
-
-Dclassifier=linux-x86_64 \
|
57
|
-
-Dfiles=kpm-$VERSION-linux-x86.tar.gz,kpm-$VERSION-osx.tar.gz \
|
58
|
-
-Dclassifiers=linux-x86,osx \
|
59
|
-
-Dtypes=tar.gz,tar.gz \
|
60
|
-
-DpomFile=pom.xml
|
@@ -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
|