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 +5 -5
- data/{History.txt → CHANGELOG.md} +72 -43
- data/Gemfile +6 -10
- data/LICENSE.txt +4 -5
- data/Mavenfile +28 -11
- data/README.rdoc +74 -28
- data/Rakefile +19 -38
- data/ext/JarMain.java +106 -98
- data/ext/WarMain.java +59 -73
- data/lib/warbler/bundler_helper.rb +1 -8
- data/lib/warbler/config.rb +7 -9
- data/lib/warbler/gems.rb +3 -9
- data/lib/warbler/jar.rb +9 -13
- data/lib/warbler/task.rb +10 -7
- data/lib/warbler/templates/bundler.erb +0 -15
- data/lib/warbler/templates/jar.erb +2 -0
- data/lib/warbler/templates/rack.erb +2 -2
- data/lib/warbler/templates/war.erb +2 -5
- data/lib/warbler/traits/bundler.rb +2 -17
- data/lib/warbler/traits/gemspec.rb +6 -2
- data/lib/warbler/traits/jar.rb +5 -1
- data/lib/warbler/traits/jbundler.rb +3 -2
- data/lib/warbler/traits/nogemspec.rb +5 -1
- data/lib/warbler/traits/rack.rb +5 -1
- data/lib/warbler/traits/rails.rb +4 -0
- data/lib/warbler/traits/war.rb +30 -31
- data/lib/warbler/traits.rb +29 -5
- data/lib/warbler/version.rb +1 -1
- data/lib/warbler/web_server.rb +7 -5
- data/lib/warbler/zip_support.rb +1 -1
- data/lib/warbler_jar.jar +0 -0
- data/warble.rb +29 -6
- data/warbler.gemspec +19 -7
- data/web.xml.erb +0 -19
- metadata +121 -39
- data/lib/warbler/war.rb +0 -8
- data/pom.xml +0 -190
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: b68e1cba9a7e9e892eb9f5950fe177c07a7bba4f349813e7bb9b18e82ad9bbcc
|
|
4
|
+
data.tar.gz: b0ed237291f26d1a79204499007d1527a97899214672474ef7cacd0aeb8591c4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 577dc3b4f393e6f4891e42806efdd64ab3ce8d3d222ff6b8ba6994a5f9376461ebcde493433d8875468cfacd8b63ec9fd058d26d8e6672e54458aa4120420e47
|
|
7
|
+
data.tar.gz: d6a263d75de2a1f2f179751face07f9b922002a7bcaa7b0534289a2188067e52ac8131fd814014421008912cb183d3afb120a6d51566072c3c737a4ed90b05b4
|
|
@@ -1,35 +1,64 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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
|
-
|
|
41
|
+
## 2.0.3
|
|
13
42
|
|
|
14
43
|
- Remove test_files from gemspec to save 700k
|
|
15
44
|
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
|
|
57
|
+
## 2.0.0
|
|
29
58
|
|
|
30
59
|
- Initial release with 9k support
|
|
31
60
|
|
|
32
|
-
|
|
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
|
-
|
|
69
|
+
## 1.4.7
|
|
41
70
|
|
|
42
71
|
- #319: Adds capacity to use the jruby-jars gem version for JRuby 9k.
|
|
43
72
|
|
|
44
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
168
|
+
## 1.3.6
|
|
140
169
|
|
|
141
170
|
- #100: fix winstone URL
|
|
142
171
|
|
|
143
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
288
|
+
## 1.0.1
|
|
260
289
|
|
|
261
290
|
- Fix careless bug where Warbler doesn't work with JRuby 1.4
|
|
262
291
|
|
|
263
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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',
|
|
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
|
-
|
|
1
|
+
MIT License
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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(
|
|
9
|
-
|
|
10
|
-
|
|
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 :
|
|
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
|
|
33
|
+
plugin :invoker, '3.10.1' do
|
|
21
34
|
execute_goals( :install, :run,
|
|
22
35
|
:id => 'integration-test',
|
|
23
|
-
:properties => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
|
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
|
-
|
|
11
|
+
== Compatibility
|
|
11
12
|
|
|
12
|
-
|
|
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
|
-
==
|
|
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
|
|
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
|
-
|
|
142
|
-
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
-
===
|
|
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
|
-
===
|
|
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
|
|
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/
|
|
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
|
|
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
|
-
|
|
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-
|
|
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.
|