warbler 2.0.5 → 2.1.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
- SHA1:
3
- metadata.gz: fc866f8b7cede59880be0ac7014d368a7db6d756
4
- data.tar.gz: 5f6de19055a066bb60939c8b1aebea840f3a29f5
2
+ SHA256:
3
+ metadata.gz: b68e1cba9a7e9e892eb9f5950fe177c07a7bba4f349813e7bb9b18e82ad9bbcc
4
+ data.tar.gz: b0ed237291f26d1a79204499007d1527a97899214672474ef7cacd0aeb8591c4
5
5
  SHA512:
6
- metadata.gz: dc98bb747bc17fde50404ccc478012cc7cc6504e21f91c6cd0aafe5cf636888a11749294314e75f24e4b8b5bba8cf64cb10f6cfcd7416509fabba29c2eb8b370
7
- data.tar.gz: f2aea739629165e65f214f0d7430601e1c5763a3ca6fe6d2058a3647e41d7fe97d7dbe0125b153afbd01a384f683390d4fa1adc246c5c56684ac10726fd9da25
6
+ metadata.gz: 577dc3b4f393e6f4891e42806efdd64ab3ce8d3d222ff6b8ba6994a5f9376461ebcde493433d8875468cfacd8b63ec9fd058d26d8e6672e54458aa4120420e47
7
+ data.tar.gz: d6a263d75de2a1f2f179751face07f9b922002a7bcaa7b0534289a2188067e52ac8131fd814014421008912cb183d3afb120a6d51566072c3c737a4ed90b05b4
@@ -1,35 +1,64 @@
1
- == 2.0.5
1
+ ## 2.1.1
2
+
3
+ - #624, #635, #623: fix: ensure compatibility with JRuby 10.1
4
+ - #583: fix: Create config dir if it's missing for simpler usage
5
+ - #588: fix: NullPointerException during shutdown with executable war files
6
+ - #589: fix: Jetty wars don't have console logging enabled by default
7
+ - #617: fix: correct ability to configure/override/force specific traits via Config.new(forced_traits: [...])
8
+ - #591: chore: clean up obsolete & deprecated code from 2.0.x and old Bundler versions
9
+ - #592: chore: relax rubyzip requirement to allow rubyzip 2.x
10
+ - #593: chore: relax jruby-rack requirement to allow compatibility with upcoming 1.3.x
11
+ - #634: chore: deprecate JBundler trait for removal
12
+
13
+ ## 2.1.0
14
+
15
+ Requires JRuby >= 9.4 due to needing Ruby 3.0+ compatibility.
16
+
17
+ - #439: Include gem_build_complete_path in jar for RubyGems 2.5+ extension support
18
+ - #440: Don't overwrite user-specified `webserver.properties` file
19
+ - #513, #521: Fix issues with openstruct used for `config.webxml` values on JRuby 9.3+
20
+ - #527: Fix war file path as argument for Jetty runner on Jetty 9.4.32+
21
+ - #538: Put public folders inside public for executable war
22
+ - #552, #553: Use URI.open instead of open
23
+ - #557: Replace File.exists? with File.exist? for Ruby 3.2.0+ compatibility
24
+ - #559, 575: Fixes to update Warbler to modern libs and JRuby, removing old Bundler 1.x hacks
25
+ - #562: Fix problems with spaces in path names under windows
26
+ - #571: Use newer keyword argument rubyzip 3.0 API (drops support for JRuby 9.3)
27
+ - #575: Fix Gem path issues on JRuby 9.4.x
28
+ - #574: Bump default Jetty version for executables to 9.4.58.v20250814
29
+
30
+ ## 2.0.5
2
31
 
3
32
  - #427: Check Java properties when looking up RAILS_ENV
4
33
  - #424: Rails Webpacker support
5
34
  - #397: Avoid warnings under JRuby 9K
6
35
 
7
- == 2.0.4
36
+ ## 2.0.4
8
37
 
9
38
  - fix: an instance variable name typo (@servlet_context_listeners)
10
39
  - #383: add bundler monkey patch
11
40
 
12
- == 2.0.3
41
+ ## 2.0.3
13
42
 
14
43
  - Remove test_files from gemspec to save 700k
15
44
 
16
- == 2.0.2
45
+ ## 2.0.2
17
46
 
18
47
  - #380: exclude spec/integration/rakelib and dot-files being packed into .gem
19
48
  - #379: 2.0.1 regression due forcing GEM_PATH = GEM_HOME
20
49
 
21
- == 2.0.1
50
+ ## 2.0.1
22
51
 
23
52
  - #367: avoid duplicate .jar copies in WEB-INF/lib
24
53
  - #364: support for compiling .rb files using jrubyc with options
25
54
  - #362: limit rubyzip version to not match too far
26
55
  - #363: [backport] support for running with (recent) rubyzip 1.2.0
27
56
 
28
- == 2.0.0
57
+ ## 2.0.0
29
58
 
30
59
  - Initial release with 9k support
31
60
 
32
- == 1.4.9
61
+ ## 1.4.9
33
62
 
34
63
  - Fixed a bug in detecting default PORT for executable WAR
35
64
  - #332: Warbler not picking up new Bundler convention of 'exe' directory for executables
@@ -37,11 +66,11 @@
37
66
  - Added the ability to set custom port for Jetty launcher with
38
67
  warbler.port or PORT env var
39
68
 
40
- == 1.4.7
69
+ ## 1.4.7
41
70
 
42
71
  - #319: Adds capacity to use the jruby-jars gem version for JRuby 9k.
43
72
 
44
- == 1.4.6
73
+ ## 1.4.6
45
74
  - #318: polish *scripts/rails* - require_relative should no longer be used
46
75
  - #315: Removed custom Jetty launcher in favor of jetty-runner
47
76
  - #316: Sprockets manifest name change
@@ -49,7 +78,7 @@
49
78
  - #311: Don't clear the environment if a java executable is found
50
79
  - #268: Compile's clearing of ENV vars makes it impossible to use custom compile vars
51
80
 
52
- == 1.4.5
81
+ ## 1.4.5
53
82
  - #282: Wrong default GEM_HOME in generated META-INF/init.rb
54
83
  - #305: warbler.rb: Document jar_extension, autodeploy_dir options
55
84
  - #304: enable ENV['RACK_ENV'] to honor command line environment variable
@@ -57,7 +86,7 @@
57
86
  - #291: Include most current gem version in README
58
87
  - #280: config.webserver = 'jetty' (by default)
59
88
 
60
- == 1.4.4
89
+ ## 1.4.4
61
90
  - #271: LoadError while excute rake command with runnable .war archive
62
91
  - #273: filtering support with `config.move_jars_to_webinf_lib`
63
92
  - #270: don't swallow compiler errors with backticks
@@ -68,7 +97,7 @@
68
97
  - #275: for jruby-1.7.13 we do not want to force load bouncy-castle jars
69
98
  - #276: unnecessary rubyzip dependency on "< 1.1"
70
99
 
71
- == 1.4.3
100
+ ## 1.4.3
72
101
  - Fixed a bug w/ symlinks that was introduced around jruby-1.7.10
73
102
  - #258: Bytecode version option for compiled class files
74
103
  - #259: Update README.rdoc to not require warbler in Gemfile
@@ -76,7 +105,7 @@
76
105
  - #167: Excluding rb and class files when using compiled flag
77
106
  - #254: Fixes #167 by excluding config.excludes from compiled files
78
107
 
79
- == 1.4.2
108
+ ## 1.4.2
80
109
  - #241: jars from jruby.jar itself do not get copied over to WEB-INF/lib
81
110
  - #199: javascript_include_tag and stylesheet_link_tag not generating digestions
82
111
  - #247: better support for Rails 4 asset pipeline
@@ -84,7 +113,7 @@
84
113
  - #243: Added the move_jars_to_webinf_lib method back in...
85
114
  - #249: Warbler 1.4.1 fails to compile on Windows
86
115
 
87
- == 1.4.1
116
+ ## 1.4.1
88
117
  - Support for JBundler
89
118
  - #165: Problem with bundler git gems
90
119
  - #239: Supresses a warning when using bundler
@@ -92,7 +121,7 @@
92
121
  - #220: For Rack-only apps, WEB-INF should be added to $LOAD_PATH
93
122
  - #218: Invoke jrubyc using system to ensure that STDERR from jrubyc is shown
94
123
 
95
- == 1.4.0
124
+ ## 1.4.0
96
125
 
97
126
  - Support for Rails 4.x
98
127
  - Improved runnable so `rails` command works w/o script dir
@@ -111,14 +140,14 @@
111
140
  - #204: Reset RubyGems gemspec cache between tests
112
141
  - #203: Test ordering issue when running with RubyGems 2.1.9
113
142
 
114
- == 1.3.8
143
+ ## 1.3.8
115
144
 
116
145
  - Numerous fixes related to -S option and local environment.
117
146
  - #162: Close the URLClassLoader before deleting tempJARs
118
147
  - #161: Comment out config.dirs to match default
119
148
  - #158: Warbler looking in the wrong directory for bundler gem
120
149
 
121
- == 1.3.7
150
+ ## 1.3.7
122
151
 
123
152
  - #154: Use #load in .rb shims
124
153
  - #153: Runnable war error
@@ -136,18 +165,18 @@
136
165
  - #105: Pick executables deterministically and warn when doing so
137
166
  - #104: Default executable is system-dependent
138
167
 
139
- == 1.3.6
168
+ ## 1.3.6
140
169
 
141
170
  - #100: fix winstone URL
142
171
 
143
- == 1.3.5
172
+ ## 1.3.5
144
173
 
145
174
  - Add config.webserver to give choices for which lightweight Java
146
175
  webserver is used in an executable war.
147
176
  - Add jenkins-ci.winstone and jetty as embeddable servers
148
177
  - #76, #81: fix rubyzip "can't modify frozen string" issue
149
178
 
150
- == 1.3.4
179
+ ## 1.3.4
151
180
 
152
181
  - #77, #78: Handle the case when multiple gems exists in a git path
153
182
  (Patrick Cheng)
@@ -157,7 +186,7 @@
157
186
  threadsafe (Joe Kutner)
158
187
  - #37, #64: Fix issues with Bundler and recent Rubygems/Rails
159
188
 
160
- == 1.3.3
189
+ ## 1.3.3
161
190
 
162
191
  - Note: 1.3.3 was YANKED due to #62
163
192
  - Move all jars to WEB-INF/lib, and leave an empty jar in the original
@@ -167,18 +196,18 @@
167
196
  - GH #42: Tricks to allow Bundler to find git repo gems even when they
168
197
  are excluded form production
169
198
 
170
- == 1.3.2
199
+ ## 1.3.2
171
200
 
172
201
  - Compatibility with rake 0.9.x, avoid deprecation warnings and deal
173
202
  with new FileList exclusion behavior
174
203
  - Exclude config.bundle_without groups properly
175
204
 
176
- == 1.3.1
205
+ ## 1.3.1
177
206
 
178
207
  - Pin rake version to ~> 0.8.7 for now. Rake 0.9.0 compatibility will
179
208
  follow in a future release.
180
209
 
181
- == 1.3.0
210
+ ## 1.3.0
182
211
 
183
212
  - Warbler can now package regular Ruby projects as executable jar
184
213
  files. See the README.rdoc file for details.
@@ -192,7 +221,7 @@
192
221
  - GH#8: Clean up compiled .class files after building war
193
222
  - GH#15: Simplify detection of thread-safe Rails
194
223
 
195
- == 1.2.1
224
+ ## 1.2.1
196
225
 
197
226
  - Add --directoryListings=false to Winstone launch by default. In some
198
227
  cases (sinatra) Winstone's directory listing masks application
@@ -202,7 +231,7 @@
202
231
  environment initialization before the web framework is loaded. See
203
232
  config.init_contents in Warbler::Config for details.
204
233
 
205
- == 1.2.0
234
+ ## 1.2.0
206
235
 
207
236
  - Drop compatibility with earlier versions of Bundler -- Bundler has
208
237
  changed a lot in a short period of time, so I'm expecting the number
@@ -223,7 +252,7 @@
223
252
  - Exclude 'tmp/war' directory so that people upgrading from 0.9 won't
224
253
  accidentally include it in their war file.
225
254
 
226
- == 1.1.0
255
+ ## 1.1.0
227
256
 
228
257
  - Add concept of "features" -- small Rake tasks that run before the
229
258
  creation of the war file and make manipulations to the war file
@@ -243,24 +272,24 @@
243
272
  default. Instead, config.ru is included in the war file.
244
273
  - Bump jruby-rack version requirement to 0.9.8.
245
274
 
246
- == 1.0.3
275
+ ## 1.0.3
247
276
 
248
277
  - Tracking recent Bundler changes - handle locked Gemfiles differently
249
278
  than unlocked ones
250
279
  - Handle file-based symlinks, and warn about inoperational directory
251
280
  symlinks under non-JRuby versions of Ruby.
252
281
 
253
- == 1.0.2
282
+ ## 1.0.2
254
283
 
255
284
  - Add 'warble pluginize' task back. This task now just creates a
256
285
  vendor/plugins/warbler/tasks/warbler.rake file. There's no need to
257
286
  "vendor" all of Warbler into your application anymore.
258
287
 
259
- == 1.0.1
288
+ ## 1.0.1
260
289
 
261
290
  - Fix careless bug where Warbler doesn't work with JRuby 1.4
262
291
 
263
- == 1.0
292
+ ## 1.0
264
293
 
265
294
  - Warbler hits 1.0! There are enough structural changes in Warbler
266
295
  that I feel it's time to roll the major version over to 1.0.
@@ -276,7 +305,7 @@
276
305
  - WARBLER-7: Add config.webinf_files option with more support for
277
306
  custom web.xml files
278
307
 
279
- == 0.9.14
308
+ ## 0.9.14
280
309
 
281
310
  - So, jruby-rack is bundled for one more release. 1.0 will not contain
282
311
  any jar files, I promise!
@@ -287,7 +316,7 @@
287
316
  (this happened with the Authlogic gem on Edge Rails)
288
317
  (thanks Laszlo Bacsi)
289
318
 
290
- == 0.9.13
319
+ ## 0.9.13
291
320
 
292
321
  - RailsConf 2009 edition.
293
322
  - Only bundled JRuby and JRuby-Rack upgrades. Bug fixes will have to come in 0.9.14.
@@ -295,7 +324,7 @@
295
324
  - Upgrade to JRuby 1.3.0RC1 and JRuby-Rack 0.9.4. The latter allows
296
325
  Rails 2.3 to work with Warbler.
297
326
 
298
- == 0.9.12
327
+ ## 0.9.12
299
328
 
300
329
  - Allow framework auto-detection to be disabled. Set
301
330
  `Warbler.framework_detection = false' at the top of config/warble.rb
@@ -313,7 +342,7 @@
313
342
  - Ignore gem development dependencies
314
343
  - Upgrade to JRuby 1.1.6 and JRuby-Rack 0.9.3
315
344
 
316
- == 0.9.11
345
+ ## 0.9.11
317
346
 
318
347
  - Auto-detect Rails and Merb and configure appropriately
319
348
  - For Rails, set rails booter, determine max runtimes based on Rails.configuration.threadsafe!,
@@ -331,7 +360,7 @@
331
360
  - Upgrade to JRuby 1.1.4 and JRuby-Rack 0.9.2
332
361
  - add [] as a way to specify non-identifier keys, example: config.webxml['!@#$%^'] = 'haha'
333
362
 
334
- == 0.9.10
363
+ ## 0.9.10
335
364
 
336
365
  - Upgraded to JRuby-Rack 0.9.1. Fixes JRUBY-2620, JRUBY-2594, JRUBY-2507.
337
366
  - Now verified to work with Camping and Sinatra. See
@@ -342,7 +371,7 @@
342
371
  - Fix #<Warbler::WebxmlOpenStruct ...> appearing in web.xml and document workarounds.
343
372
  - Add config.autodeploy_dir that, when specified, will create the war there.
344
373
 
345
- == 0.9.9
374
+ ## 0.9.9
346
375
 
347
376
  - Now shipping with JRuby-Rack 0.9!
348
377
  - Upgrade to JRuby 1.1.1
@@ -354,36 +383,36 @@
354
383
  -- config.webxml.pool.* have been replaced by config.webxml.jruby.(min|max).runtimes
355
384
  -- config.webxml.standalone and config.webxml.jruby_home no longer have any effect.
356
385
 
357
- == 0.9.5
386
+ ## 0.9.5
358
387
 
359
388
  - Fix bug in plugin warbler.rake task file that would favor loading warbler from gems before the version
360
389
  installed as a plugin
361
390
  - Upgrade to JRuby 1.1 final and Goldspike 1.6.1
362
391
 
363
- == 0.9.4
392
+ ## 0.9.4
364
393
 
365
394
  - Update bundled JRuby to 1.1RC3 and Goldspike to 1.6.
366
395
  - Fix inclusion of gems with platform-specific bits (e.g., Hpricot)
367
396
 
368
- == 0.9.3
397
+ ## 0.9.3
369
398
 
370
399
  - Update bundled JRuby to 1.1RC2, and Goldspike to 1.5.
371
400
  - The bundled JRuby and Goldspike now require JDK 5 or greater. If you wish to use JDK 1.4, use Warbler 0.9.2.
372
401
 
373
- == 0.9.2
402
+ ## 0.9.2
374
403
 
375
404
  - Update bundled JRuby to version 1.0.3 and Goldspike 1.4.
376
405
  - Add config.java_classes to allow you to copy loose Java classes into WEB-INF/classes.
377
406
  - Make jar command a single command string so that jar creation doesn't fail (works around bug in JRuby 1.0.2)
378
407
  - Use File.join to form staging directory, should produce the proper jar-command path in Windows
379
408
 
380
- == 0.9.1
409
+ ## 0.9.1
381
410
 
382
411
  - Add rake >= 0.7.3 as a dependency in the gem specification.
383
412
  - Add debug tasks: war:debug, war:debug:gems, war:debug:public, war:debug:app, war:debug:includes,
384
413
  war:debug:excludes, war:debug:java_libs gives you a breakdown of what Warbler expects to package.
385
414
 
386
- == 0.9
415
+ ## 0.9
387
416
 
388
417
  - Birthday! Warbler is a gem to make a .war file out of a Rails project. The intent is to provide a
389
418
  minimal, flexible, ruby-like way to bundle up all of your application files for deployment to a
data/Gemfile CHANGED
@@ -2,15 +2,11 @@ source "https://rubygems.org/"
2
2
 
3
3
  gemspec
4
4
 
5
- group :development do
6
- gem "jruby-openssl", :platform => :jruby
7
- gem "rcov", ">= 0.9.8", :platform => :mri_18
8
- gem "childprocess", :platform => :mri
9
- end
10
-
11
- gem 'rubyzip', ENV['RUBYZIP_VERSION'] if ENV['RUBYZIP_VERSION']
12
- gem 'rake', ENV['RAKE_VERSION'], :require => nil if ENV['RAKE_VERSION']
13
-
14
5
  group :development, :test do
15
- gem 'rdoc', ['>= 3.10', '< 4.3'], :require => nil
6
+ gem 'rdoc', '~> 7.0', :require => nil
7
+
8
+ if defined?(JRUBY_VERSION)
9
+ # force jruby-jars to use current JRuby version for testing
10
+ gem 'jruby-jars', '~> ' + JRUBY_VERSION.split('.')[0..2].join('.')
11
+ end
16
12
  end
data/LICENSE.txt CHANGED
@@ -1,9 +1,8 @@
1
- = Warbler
1
+ MIT License
2
2
 
3
- Warbler is provided under the terms of the MIT license.
4
-
5
- Warbler (c) 2010-2013 Engine Yard, Inc.
6
- Warbler (c) 2007-2009 Sun Microsystems, Inc.
3
+ Copyright (c) 2013-2018 The JRuby Team
4
+ Copyright (c) 2010-2013 Engine Yard, Inc.
5
+ Copyright (c) 2007-2009 Sun Microsystems, Inc.
7
6
 
8
7
  Permission is hereby granted, free of charge, to any person
9
8
  obtaining a copy of this software and associated documentation files
data/Mavenfile CHANGED
@@ -1,13 +1,17 @@
1
1
  #-*- mode: ruby -*-
2
+ warn "ruby-maven is running fixed JRuby version #{JRUBY_VERSION}"
2
3
 
3
4
  # tell the gem setup for maven where the java sources are
4
5
  # and how to name the jar file (default path for the jar: ./lib )
5
6
  gemspec( :jar => 'warbler_jar.jar',
6
7
  :source => 'ext' )
7
8
 
8
- properties( 'jruby.plugins.version' => '1.1.5',
9
- 'jruby.version' => '9.1.6.0',
10
- 'jetty.version' => '9.2.10.v20150310' )
9
+ properties(
10
+ 'project.build.sourceEncoding' => 'UTF-8',
11
+ 'mavengem.wagon.version' => '2.0.3',
12
+ 'jruby.plugins.version' => '3.0.6',
13
+ 'jetty.version' => '9.4.58.v20250814',
14
+ )
11
15
 
12
16
  # dependencies needed for compilation
13
17
  scope :provided do
@@ -15,18 +19,31 @@ scope :provided do
15
19
  jar 'org.eclipse.jetty:jetty-webapp', '${jetty.version}'
16
20
  end
17
21
 
18
- plugin :compiler, '3.1', :source => '1.5', :target => '1.5'
22
+ plugin :clean, '3.5.0'
23
+ plugin :compiler, '3.15.0', :release => '8'
24
+ plugin :resources, '3.5.0'
25
+ plugin :jar, '3.5.0' do
26
+ execute_goals(:phase => 'none') # Avoid a duplicate execution with that defined by the :gemspec directive
27
+ end
28
+ plugin :install, '3.1.4'
29
+
30
+ gem 'bundler', '${bundler.version}'
31
+ gem 'jruby-jars', '${jruby.version}'
19
32
 
20
- plugin :invoker, '1.8' do
33
+ plugin :invoker, '3.10.1' do
21
34
  execute_goals( :install, :run,
22
35
  :id => 'integration-test',
23
- :properties => { 'warbler.version' => '${project.version}',
24
- 'jruby.version' => '${jruby.version}',
25
- 'jetty.version' => '${jetty.version}',
26
- 'bundler.version' => '1.12.5',
27
- 'jruby.plugins.version' => '${jruby.plugins.version}' },
28
-
36
+ :properties => {
37
+ 'warbler.version' => '${project.version}',
38
+ 'jruby.version' => '${jruby.version}',
39
+ 'jetty.version' => '${jetty.version}',
40
+ 'bundler.version' => '${bundler.version}',
41
+ 'jruby.plugins.version' => '${jruby.plugins.version}',
42
+ 'style.color' => 'always',
43
+ },
29
44
  :goals => ['verify'],
30
45
  :projectsDirectory => 'integration',
46
+ :pomIncludes => [ '*/pom.xml' ],
47
+ :pomExcludes => [],
31
48
  :streamLogs => true )
32
49
  end
data/README.rdoc CHANGED
@@ -1,4 +1,5 @@
1
- = Warbler {<img src="https://badge.fury.io/rb/warbler.svg" alt="Gem Version" />}[http://badge.fury.io/rb/warbler] {<img src="https://travis-ci.org/jruby/warbler.png" />}[https://travis-ci.org/jruby/warbler]
1
+ = Warbler
2
+ {rdoc-image:https://img.shields.io/gem/v/warbler}[https://rubygems.org/gems/warbler] {rdoc-image:https://github.com/jruby/warbler/actions/workflows/ci.yml/badge.svg}[https://github.com/jruby/warbler/actions/workflows/ci.yml]
2
3
 
3
4
  Warbler is a gem to make a Java jar or war file out of any Ruby, Rails or Rack
4
5
  application. Warbler provides a minimal, flexible, Ruby-like way to bundle up
@@ -7,9 +8,18 @@ all of your application files for deployment to a Java environment.
7
8
  Warbler provides a sane set of out-of-the box defaults that should allow most
8
9
  Ruby applications to assemble and Just Work.
9
10
 
10
- Version 2.x of Warbler supports versions of JRuby from 9.0.0.0 and up.
11
+ == Compatibility
11
12
 
12
- Version 1.4.x of Warbler supports versions of JRuby up to 1.7.x. The {1.x-dev branch}[https://github.com/jruby/warbler/tree/1.x-dev] is the working code for this.
13
+ Warbler Status JRuby Java JRuby-Rack Rails Notes
14
+ ------- ---------- ---------- ---- ---------- --------- ----------------------------------------------
15
+ 2.1 Maintained 9.4 → 10.1 8+ 1.2 → 1.3 5.0 → 8.0 Rails 8.1 may be OK with pure Ruby webservers.
16
+ 2.0 EOL 9.2 → 9.3 6+ 1.1 → 1.2 → 6.1
17
+ 1.4 EOL 1.1 → 1.7 5+ ? ?
18
+
19
+ For running wars with specific Java web servers, consult jruby-rack compatibility (
20
+ {master}[https://github.com/jruby/jruby-rack/tree/master],
21
+ {1.2-stable}[https://github.com/jruby/jruby-rack/tree/1.2-stable],
22
+ {1.1-stable}[https://github.com/jruby/jruby-rack/tree/1.1-stable] ).
13
23
 
14
24
  == Getting Started
15
25
 
@@ -93,7 +103,7 @@ feature and creates a basic war with the sources included, make sure you run :
93
103
  or, if it's important that the war always be compiled, use the option above to
94
104
  put the feature in your <tt>config/warble.rb</tt>.
95
105
 
96
- == War or Jar?
106
+ == .war or .jar?
97
107
 
98
108
  War-based projects are for Rails, Merb, or Rack-based web applications.
99
109
  They usually contain a +config/environment.rb+ file, a +config/init.rb+ file,
@@ -108,7 +118,7 @@ in the <tt>lib</tt> directory. Warbler packages the application so that
108
118
 
109
119
  == Jar Files
110
120
 
111
- === Gem Specification (gemspec) Files
121
+ === Gem Specification Files
112
122
 
113
123
  If your project has a <tt>.gemspec</tt> file in the top directory, it will be
114
124
  used to configure the project's dependencies, launcher script, require paths,
@@ -136,10 +146,14 @@ Warbler supports Bundler for gems and git repositories, but not for plain path
136
146
  components. Warbler will warn when a +:path+ component is found in the +Gemfile+
137
147
  and will refuse to include it in the archive.
138
148
 
139
- === JBundler (experimental)
149
+ === JBundler (deprecated, experimental)
150
+
151
+ Applications that use JBundler[http://github.com/jruby/jbundler], detected via presence of a +Jarfile+, will have
152
+ the jars packaged up into the archive. The JBundler gem is **not** needed for runtime since all jars are already part of the classloader.
140
153
 
141
- Applications that use JBundler[http://github.com/mkristian/jbundler], detected
142
- via presence of a +Jarfile+, will have the jars packaged up into the archive. the JBundler gem is **not** needed for runtime since all jars are already part of the classloader.
154
+ JBundler is EOL; and this capability is thus deprecated for removal in a future release, and is not recommended for use.
155
+ The recommended replacement is bundler with +jar-dependencies+ (bundled with modern JRuby); but requires some work for
156
+ compatibility. See https://github.com/jruby/warbler/issues/481 for more details and contribute if you'd like this feature to be retained and supported.
143
157
 
144
158
  == War Files
145
159
 
@@ -155,7 +169,7 @@ The following items are set up for you:
155
169
  * Multi-thread-safe execution (as introduced in Rails 2.2) is detected and
156
170
  runtime pooling is disabled.
157
171
 
158
- === Other Rack-based applications
172
+ === Other Rack Applications
159
173
 
160
174
  If you have a +config.ru+ file in the top directory or one of the immediate
161
175
  subdirectories of your application, it will be included and used as the rackup
@@ -166,7 +180,7 @@ to manage your gems. <tt>ENV['RACK_ENV']</tt> will be set to +production+.
166
180
  See {the examples in the jruby-rack project}[http://github.com/jruby/jruby-rack/tree/master/examples/]
167
181
  of how to configure Warbler to package Camping and Sinatra apps.
168
182
 
169
- === Configuration auto-detect notes
183
+ === Configuration Notes
170
184
 
171
185
  * Warbler will load the +environment+ Rake task in a Rails application to try
172
186
  to detect some configuration. If you don't have database access in the
@@ -178,19 +192,18 @@ of how to configure Warbler to package Camping and Sinatra apps.
178
192
  <tt>Gem.loaded_specs</tt> is available, but the application needs to be
179
193
  loaded first before its contents are reliable.
180
194
 
181
- == Custom configuration
195
+ == Custom Configuration
182
196
 
183
197
  If the default settings are not appropriate for your application, you can
184
198
  customize Warbler's behavior. To customize files, libraries, and gems included
185
- in the .war file, you'll need a config/warble.rb file. There a two ways of
186
- doing this. With the gem, simply run
199
+ in the .war file, you'll need a +config/warble.rb+ file. To generate one:
187
200
 
188
201
  warble config
189
202
 
190
- Finally, edit the +config/warble.rb+ to your taste. The generated file is
203
+ Edit the +config/warble.rb+ to your taste. The generated file is
191
204
  fully-documented with the available options and default values.
192
205
 
193
- === War layout
206
+ === Archive Layout
194
207
 
195
208
  The default configuration puts application files (+app+, +config+, +lib+,
196
209
  +log+, +vendor+, +tmp+) under the .war file's +WEB-INF+ directory, and files in
@@ -198,7 +211,7 @@ The default configuration puts application files (+app+, +config+, +lib+,
198
211
  automatically be placed in +WEB-INF/lib+ for placement on the web app's
199
212
  class-path.
200
213
 
201
- === Web.xml
214
+ === web.xml
202
215
 
203
216
  Java web applications are configured mainly through this file, and Warbler
204
217
  creates a suitable default file for you for use. However, if you need to
@@ -219,7 +232,7 @@ customize it in any way, you have two options.
219
232
 
220
233
  For more information on configuration, see Warbler::Config.
221
234
 
222
- == Rakefile integration
235
+ == Rakefile Integration
223
236
 
224
237
  If you'd like to control Warbler from your own project's +Rakefile+,
225
238
  simply add the following code somewhere in the +Rakefile+ :
@@ -243,22 +256,60 @@ task to give you more insight into what's going on.
243
256
  If you think you found a bug, please file one at
244
257
  https://github.com/jruby/warbler/issues.
245
258
 
259
+ === Common issues with executable wars
260
+
261
+ If your app isn't working or starting up correctly:
262
+
263
+ - <b>Missing Logging:</b>
264
+ If your boot process is failing silently (or with a logging warning), try configuring the logger
265
+ manually:
266
+
267
+ java "-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog" -jar my_app.war
268
+
269
+ - <b>CompatVersion errors:</b>
270
+ If you are getting <tt>java.lang.NoClassDefFoundError: org/jruby/CompatVersion</tt> errors at start-up
271
+ you are probably running Warbler with a jruby-rack version which does not yet support JRuby 10+ - it
272
+ swallows the true error making debugging impossible. Ensure you're on jruby-rack `1.2.7+`.
273
+
274
+ - <b>Bundler `restart_with` errors:</b>
275
+ If you are getting <tt>org.jruby.rack.RackInitializationException: No such file or directory - java -cp...</tt>,
276
+ that probably means bundler is trying to switch versions dynamically during start-up because your
277
+ `Gemfile.lock` implies a different locked version of bundler to that packaged with JRuby by default.
278
+
279
+ JRuby/Bundler running embedded inside a jar like this does not support switching bundler versions dynamically.
280
+
281
+ This may happen due to
282
+ - system gems for jruby installation upgradingg bundler to a newer version than packaged by default
283
+ - running <tt>bundle update --bundler</tt>
284
+ - using `BUNDLE_VERSION` to override bundle version which generating/editing your `Gemfile.lock`
285
+
286
+ Options to address this
287
+ - use <tt>bundle config set version system</tt> / <tt>bundle config set disable_shared_gems</tt> to avoid bundler picking system versions
288
+ - ensure your `Gemfile.lock`'s <tt>BUNDLED WITH</tt> version matches the default bundler packaged with your `jruby-jars` version.
289
+ You can check inside the relevant `jruby-stdlib` jar or inside a clean installation dir from your Ruby version manager of choice.
290
+ - remove <tt>BUNDLED WITH</tt> entirely from `Gemfile.lock`. Sometimes bundler will add this back again; so not recommended in the longer term
291
+
292
+ - <b>Rack version compatibility</b>
293
+ An exception happened during JRuby-Rack startup
294
+ no such file to load -- rack/chunked
295
+ You are trying to use Rack 3.x with a jruby-rack version that does not yet support Rack 3. Try upgrading to a compatible
296
+ jruby-rack version, or lock rack at a compatibile version with <tt>gem 'rack', '~> 2.2.0'</tt>. Note that Rack `2.2` requires Rails < `8.1`.
297
+
246
298
  == Source
247
299
 
248
300
  You can get the Warbler source using Git, in any of the following ways:
249
301
 
250
- git clone git://git.caldersphere.net/warbler.git
251
302
  git clone git://github.com/jruby/warbler.git
252
303
 
253
304
  You can also download a tarball of Warbler source at
254
- https://github.com/jruby/warbler/tarball/master.
305
+ https://github.com/jruby/warbler/archive/master.zip.
255
306
 
256
307
  == Development
257
308
 
258
309
  You can develop Warbler with any implementation of Ruby. To write Warbler code
259
- and run specs, you need to have Bundler installed and run <tt>bundle</tt> once.
310
+ and run specs, you need to have Bundler installed and run <tt>bundle install</tt> once.
260
311
 
261
- After that, simply run <tt>rake</tt>.
312
+ After that, simply run +rake+.
262
313
 
263
314
  === Integration Tests
264
315
 
@@ -266,19 +317,14 @@ There are a few integration tests in the `integration` directory that build WAR
266
317
  with Warbler, and run some basic smoke tests against them. You can run these like so:
267
318
 
268
319
  cd integration
269
- export MAVEN_OPTS="-XX:MaxPermSize=128m"
270
320
  mvn verify
271
321
 
272
- The increased PermGen space is for the Rails4 test. And You'll need to have Maven 3.1.1 installed, of course:
273
- http://maven.apache.org/ Be aware the homebrew installs 3.0.5, which doesn't work (and I don't really know why).
274
-
322
+ You'll need to have Maven >= 3.1.1 installed, of course: http://maven.apache.org/
275
323
 
276
324
  == License
277
325
 
278
326
  Warbler is provided under the terms of the MIT license.
279
327
 
280
- Warbler (c) 2013-2015 The JRuby project
281
-
328
+ Warbler (c) 2013-2018 The JRuby Team
282
329
  Warbler (c) 2010-2012 Engine Yard, Inc.
283
-
284
330
  Warbler (c) 2007-2009 Sun Microsystems, Inc.