jarbler 0.1.4 → 0.1.5

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: 69c4dfd51fa32af943ab9ada29536253dc516150cdff7e82e1944216098a92c8
4
- data.tar.gz: 63e6752eba98d7cc27642fcbb13a199fc41867a6d044edf28051f025d292ef09
3
+ metadata.gz: d5166483687f2467695c869afc03f491134d1bd74004d97ba706b1296f6836d1
4
+ data.tar.gz: 59d98964583486160c572d7c2ee8326f6f005a3cab558bd95b9114c5954a83eb
5
5
  SHA512:
6
- metadata.gz: 882f6b8e791b8f7fc9cc4eff3d86867c2667f8d817fd4c46a1f10103bcf98e50aee1e98c10b49fe14ae5e4f5a63a992ff9bf9121d4a9459d87e20ca05560c42a
7
- data.tar.gz: e8b9a10dbfacc4180710a62fe84cfa9595049d62cd6ff6625cf520d39d380357f13502f0e0f228057d85d226d4ef29fe255e5cc63cf011f5d00f92bc8c5d2c52
6
+ metadata.gz: 5230dc737fd40641ee5fc2babaf5a982c5768f0d3281ad5fa384c3c9cc1814c575b33e906d69607a401475a1f46932be507dbed2b12fd28ba0c244bd84b10564
7
+ data.tar.gz: d6226dd8aa0c658eacc18caa868c0084232267f04c99f968d01ea88e0f929fa5c9cd94fab39b7f76cca3a934f46e5797e86afbd165fbba6c1e9f8b2fb381e83b
data/CHANGELOG.md CHANGED
@@ -1,21 +1,29 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2023-04-12
3
+ ## [0.1.5] - 2023-06-15
4
4
 
5
- - Initial release
5
+ - Bugfix: use minor ruby version without patch level for Gem files location
6
+
7
+ ## [0.1.4] - 2023-04-28
8
+
9
+ - Jarbler also supports Gemfile references to Gems with git dependencies now
10
+
11
+ ## [0.1.3] - 2023-04-25
12
+
13
+ - Removed .jruby-version so that the jruby version is not fixed anymore
14
+
15
+ ## [0.1.2] - 2023-04-24
16
+
17
+ - extract valid Gem paths from Bundler instead of using the environment variable GEM_PATH
6
18
 
7
19
  ## [0.1.1] - 2023-04-24
8
20
 
9
21
  - Fixed the bug 'java.lang.ClassNotFoundException: org.jruby.Main' with Windows
10
22
 
11
- ## [0.1.2] - 2023-04-24
23
+ ## [0.1.0] - 2023-04-12
12
24
 
13
- - extract valid Gem paths from Bundler instead of using the environment variable GEM_PATH
25
+ - Initial release
14
26
 
15
- ## [0.1.3] - 2023-04-25
16
27
 
17
- - Removed .jruby-version so that the jruby version is not fixed anymore
18
28
 
19
- ## [0.1.4] - 2023-04-28
20
29
 
21
- - Jarbler also supports Gemfile references to Gems with git dependencies now
data/README.md CHANGED
@@ -15,6 +15,8 @@ Install the gem and add to the application's Gemfile by executing:
15
15
  If bundler is not being used to manage dependencies, install the gem by executing:
16
16
 
17
17
  $ gem install jarbler
18
+
19
+ [![Gem Version](https://badge.fury.io/rb/jarbler.svg)](https://badge.fury.io/rb/jarbler)
18
20
 
19
21
  ## Usage
20
22
 
@@ -47,9 +49,18 @@ To create a template config file with information about all the supported config
47
49
 
48
50
  $ jarble config
49
51
 
50
- The default configuration supports Ruby on Rails applications.<br>
51
- The executable is set to "bin/rails" by default.<br>
52
- The default executable parameters are "server -p 8080 -e production".
52
+ The default configuration if focused on Ruby on Rails applications.<br>
53
+
54
+ ### Configuration options
55
+ | Option | Default value | Description |
56
+ |-------------------|--------------------------------------------------------------------------------|---------------------------------------------------------------------|
57
+ | executable | "bin/rails" | The ruby file to run at execution of jar file |
58
+ | executable_params | ["server", "-e", "production", "-p", "8080"] | Command line parameters to be used for the ruby executable |
59
+ | excludes | ["tmp/cache", "tmp/pids", ...] (see generated template file for whole content) | The files and dirs of the project to exlude from the include option |
60
+ | includes | ["app", "bin", "config", ...] (see generated template file for whole content) | The files and dirs of the project to include in the jar file |
61
+ | jar_name | &lt; Name of project dir &gt;.jar | The name of the generated jar file |
62
+ | jruby_version | The current most recent jRuby version | The version of the jRuby runtime to use |
63
+
53
64
 
54
65
  ## Troubleshooting
55
66
  * Set DEBUG=true in environment to get additional runtime information
@@ -57,7 +57,7 @@ class JarMain {
57
57
  jarPath = jarPath.substring(1); // remove the leading slash
58
58
  }
59
59
 
60
- // extract the jarFile by executing jar -xf jarFileName
60
+ // extract the jarFile by unzipping it (not using the jar utility which may not be available)
61
61
  System.out.println("Extracting files from "+jarPath+" to "+ newFolder.getAbsolutePath());
62
62
  unzip(jarPath, newFolder.getAbsolutePath());
63
63
 
@@ -135,8 +135,10 @@ class JarMain {
135
135
  debug(" - " + arg);
136
136
  }
137
137
 
138
+ debug("jRuby set property 'user.dir' to '" + app_root + "'");
138
139
  System.setProperty("user.dir", app_root);
139
140
  // call the method org.jruby.Main.main
141
+ debug("Calling org.jruby.Main.main with: "+ mainArgs);
140
142
  mainMethod.invoke(null, (Object)mainArgs.toArray(new String[mainArgs.size()]));
141
143
  } catch (Exception e) {
142
144
  e.printStackTrace();
@@ -18,7 +18,7 @@ module Jarbler
18
18
  app_root = Dir.pwd
19
19
  debug "Project dir: #{app_root}"
20
20
 
21
- ruby_version = copy_jruby_jars_to_staging(staging_dir) # Copy the jruby jars to the staging directory
21
+ ruby_minor_version = copy_jruby_jars_to_staging(staging_dir) # Copy the jruby jars to the staging directory
22
22
  exec_command "javac -nowarn -Xlint:deprecation -source 8 -target 8 -d #{staging_dir} #{__dir__}/JarMain.java" # Compile the Java files
23
23
 
24
24
  # Copy the application project to the staging directory
@@ -31,7 +31,7 @@ module Jarbler
31
31
  raise "Gemfile.lock not found in #{app_root}" unless File.exist?("#{app_root}/Gemfile.lock")
32
32
 
33
33
  # Copy the needed Gems to the staging directory
34
- copy_needed_gems_to_staging(staging_dir, ruby_version)
34
+ copy_needed_gems_to_staging(staging_dir, ruby_minor_version)
35
35
 
36
36
  Dir.chdir(staging_dir) do
37
37
  # create the manifest file
@@ -101,10 +101,10 @@ module Jarbler
101
101
 
102
102
  # Copy the needed Gems to the staging directory
103
103
  # @param staging_dir [String] the staging directory
104
- # @param ruby_version [String] the corresponding ruby version of the jruby jars version
104
+ # @param ruby_minor_version [String] the corresponding ruby minor version of the jruby jars version
105
105
  # @return [void]
106
- def copy_needed_gems_to_staging(staging_dir, ruby_version)
107
- gem_target_location = "#{staging_dir}/gems/jruby/#{ruby_version}"
106
+ def copy_needed_gems_to_staging(staging_dir, ruby_minor_version)
107
+ gem_target_location = "#{staging_dir}/gems/jruby/#{ruby_minor_version}"
108
108
  FileUtils.mkdir_p("#{gem_target_location}/gems")
109
109
  FileUtils.mkdir_p("#{gem_target_location}/specifications")
110
110
  FileUtils.mkdir_p("#{gem_target_location}/bundler/gems")
@@ -200,7 +200,7 @@ module Jarbler
200
200
 
201
201
  # Copy the jruby-jars to the staging directory
202
202
  # @param [String] staging_dir Path to the staging directory
203
- # @return [String] the ruby version of the jRuby jars
203
+ # @return [String] the minor ruby version of the jRuby jars with patch level set to 0
204
204
  def copy_jruby_jars_to_staging(staging_dir)
205
205
 
206
206
  # Ensure that jruby-jars gem is installed, otherwise install it. Accepts also bundler path in .bundle/config
@@ -224,7 +224,9 @@ module Jarbler
224
224
  raise "Could not determine Ruby version for jRuby #{config.jruby_version} in following output:\n#{lines}" unless match_result
225
225
  ruby_version = match_result[0].tr('()', '')
226
226
  debug "Corresponding Ruby version for jRuby (#{config.jruby_version}): #{ruby_version}"
227
- ruby_version
227
+ ruby_minor_version = ruby_version.split('.')[0..1].join('.') + '.0'
228
+ debug "Corresponding Ruby minor version for jRuby (#{config.jruby_version}): #{ruby_minor_version}"
229
+ ruby_minor_version
228
230
  end
229
231
 
230
232
  # Execute the command in OS and return the output
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jarbler
4
- VERSION = "0.1.4"
5
- VERSION_DATE = "2023-04-28"
4
+ VERSION = "0.1.5"
5
+ VERSION_DATE = "2023-06-15"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jarbler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Ramm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-28 00:00:00.000000000 Z
11
+ date: 2023-06-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Pack a Ruby app combined with jRuby runtime and all its Gem dependencies
14
14
  into a jar file to simply run the app on any Java platform by '> java -jar file.jar'
@@ -55,7 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  requirements: []
58
- rubygems_version: 3.3.26
58
+ rubygems_version: 3.0.3.1
59
59
  signing_key:
60
60
  specification_version: 4
61
61
  summary: Pack a Ruby app into a Java jar file