kpm 0.11.0 → 0.11.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|