forked from jruby/jruby-rack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHistory.txt
More file actions
453 lines (382 loc) · 20.4 KB
/
History.txt
File metadata and controls
453 lines (382 loc) · 20.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
== 1.1.13.3 (13/11/13)
- restore compatibility with JRuby < 1.6.7
== 1.1.13.2 (02/04/13)
- fix warning in Rack::Utils::Response#write_headers
- bundle latest Rack 1.4 (1.4.5)
== 1.1.13.1 (14/01/13)
- fix missing explicit require 'jruby/rack/version' in 1.1.13
== 1.1.13 (13/01/13)
- make sure (body) Java channel is always closed on Response#write_body
- deal with capture backtrace incompatibility on JRuby 1.7 (#139)
- bundle (latest) rack 1.4.2
- make sure out custom (env) Hash sub-classes behave more Hash-y (#134)
- support for setting a custom JRuby-Rack Response class (e.g. due #send_file)
- explicit support for sending file bodies with the possibility to re-define
#send_file per app-server
- make sure we still maintain 2.3 compatibility (fix for #138)
- fix send_file not being able to handle large > 2GB files (#133)
- review chunked support - changed default behavior into patching Rack::Chunked
the old behavior still works by setting jruby.rack.response.chunked = true
- handle empty (null) strings when parsing (Ruby) magic comments e.g. config.ru
- versioning review - make sure versions are always "valid" even for SNAPSHOTs
== 1.1.12 (28/11/12)
- make (Default)Env to be the environment Hash instance itself since we need
to handle custom lazy-bound keys but can not use a default proc (#132)
- support the renew (and skip) session option with servlet store (#131)
- improve ENV isolation with booted Ruby runtimes
- jruby.rack.env replaces jruby.rack.ignore.env (now deprecated)
- make sure RUBYOPT is ignored (with backwards compat)
- jruby.rack.env.rubyopt for finer RUBYOPT behavior control
- allow env value to be specified from config
- solve the rackup "chicken - egg" problem with a plain Rack app
- with a magic comment in config.ru # rack.version: ~>1.3.6
- for bundle exec "emulation" use # rack.version: bundler
- (temporarily) introduce RackEnvironment.ToIO to avoid instance vars
on non-persistent Java types (JRuby 1.7 warning)
- add a JRuby::Rack::Helpers module for helper functions
- decorating factories (e.g. pooling factory) can now be distinguished
- refactored / updated error handling :
- move the decision about throwing the init error into the listener
- unify exception handling across decorating app factories with support
for configuring exception handling with the *jruby.rack.error* option
- make sure init errors are thrown from pooling factory's init
- added an ErrorApplication marker interface
- dispatcher might now decide what status to return (or throw)
- let the servlet container deal with null response header values
- expose the rack context using JRuby::Rack.context= in embed scenario
- rely less on booter and $servlet_context whenever possible
- moved Booter#logger into JRuby::Rack.logger
- boot! now 'exports' JRuby::Rack.app_path and public_path
- changed $servlet_context refs to JRuby::Rack.context
- maven + rake (joint) build review
run mvn compile on rake compile instead of custom javac
(+ updated jruby.version to 1.6.8)
- removed LoggerConfigurationException used with Commons-Logging
- fix invalid /tmp detected jruby home LOAD_PATH on 1.7.0
- support setting compat version 2.0 (on JRuby 1.7.x)
- application layout (JRuby::Rack::AppLayout) improvements :
- introduce app.root context param (similar to rails.root)
- RailsWebInfLayout is now the same as WebInfLayout
- added (generic) FileSystemLayout (handles rails apps as well)
- RailsFilesystemLayout is FileSystemLayout for compatibility
- make sure paths are expanded when using a FS layout
- moved change_working_directory code to happen within Booter
- fix Booter failing to boot! when layout.gem_path nil (or empty)
- Rails booter's RAILS_ENV should default to RACK_ENV if set
- make sure original rack body gets always closed with optimized send_file
might lead to side-effects such as not releasing database connections (#123)
- some more useful Servlet API Ruby extensions ('attribute' managing objects
such as ServletContext behave similar to Hash)
== 1.1.10 (04/09/12)
- correctly dechunk data from response and handle flushing,
finally Rails 3.1+ `render stream: true` support (#117)
- initial compatibility with Rails master (getting torwards 4.0.0.beta)
known issues: ActionController::Live seems to end up with a dead-lock
- ServletEnv now parses cookies using HttpServletRequest.getCookies instead of
leaving it off for Rack::Request
== 1.1.9 (19/08/12)
- rack env regression fix when used with rack-cache, introduced in 1.1.8 (#116)
request.env should work correctly when (duped and) frozen
== 1.1.8 (17/08/12)
- introduced ServletEnv for cases when it's desirable to fully use the servlet
environment to create the rack env (and not let Rack::Request parse params
but rely on the parameters already parsed and available from the servlet
request #110). this is an experimental feature that might change in the
future and requires setting 'jruby.rack.handler.env' param to 'servlet' !
- separated out Env (LazyEnv) into a separate file :
- Env got refactored into DefaultEnv (with lazyness built-in)
- LazyEnv got removed as it is not longer necessary
- Rack::Handler::Servlet.env sets the used env conversion class
- introduce a generic getNumberProperty on RackConfig
- introduce a base RackException and add a custom AcquireTimeoutException for
pool timeouts (related to jruby.runtime.acquire.timeout parameter)
- RackInitializationException changed to unchecked as it inherits from
RackException now
- PoolingRackApplication (and related) polishing :
- avoid creating a new application from getApplication when a permit is
granted but pool is empty
- support to wait till pool becomes ready by default otherwise wait until
initial application objects are present in the pool before returning
(controlled with the jruby.runtime.init.wait accepting true/false/integer)
- edge case handling where (in case were set to not wait for initialization)
we should wait for an initializer thread to put an application into the pool
- allow acquire timeout (jruby.runtime.acquire.timeout param) to be specified
as a decimal number for finer control and decreased the timeout default
from 30s to 10s (although seems still too high for a default)
- jruby runtime pooling for plain Rack applications (not just Rails)
== 1.1.7 (21/06/12)
- support for delegating logs to java.util.logging (jruby.rack.logging: JUL)
- extend RackLogger with levels for better logging with underlying log impl
- consider 405 as an unhandled response from filter chain by default (#109)
- make sure optimized file streaming gets used with rails send_file, this serves
as a work-around for a --1.9 bug in jruby-1.6.7 with string encoding (#107)
== 1.1.6 (16/05/12)
- consider 403 as an unhandled response from filter chain (along with 404) and
allow configuring responseNotHandledStatuses via filter init parameter (#105)
== 1.1.5 (04/03/12)
- bundler 1.1 workaround when ENV is cleared - set ENV['PATH'] = ''
- resolve servlet context from request.getServletContext if posssible
- resetUnhandledResponse init param for controlling chain response handling
- filter specific context params deprecated in favor of filter init params
- logging should not depend on $servlet_context global (better #88 fix)
- cleanup request buffer /tmp files after input stream gets closed
- add an embed Config to correctly setup RackConfig from ruby runtime
- introduce RackConfig#getOut/getErr for possible 1/2 stream redirection
- ensure ENV changes do not affect the native environment (#101)
- change Rails.public_path early on (#99) and do not set PUBLIC_ROOT in 3.x
- synchronize session operations with JavaServletStore (#95)
- allow configuring request buffer initial/maximum size using parameters
- initialization exception behavior in listener might be overriden (#16)
== 1.1.4 (02/21/12)
- incorrectly interpreted byte in RewindableInputStream causing EOFs (#92)
- fix JRuby::Rack::Response 1.9 incompatibility due String#each
- ensure $servlet_context is not nil in embedded scenario (#88)
- upgrade to Rack 1.4.1
- fix resolving rackup on WLS 10.3 with Rails 3
- explicit require rack + on rails allow bundler to decide rack version
- config.logger fixes and support for ActiveSupport::TaggedLogging (#93)
- revert regression in 1.1.3 with incorrect filter behavior (#84)
== 1.1.3 (01/10/12)
- Additional fix for #73, #76 (Fix relative_url_root issue for good)
- Stop using BufferedLogger (#80)
== 1.1.2 (12/30/11)
- GH#18: Undefined method `call' for nil:NilClass
- GH#44: JRuby-rack POST form-urlencoded doesn't work with Jetty
- GH#71: request.body.read stopped working
- GH#73, GH#76: relative_url_root= called for rails > 3
- GH#79: FileNotFoundException on WAS 8.0
== 1.1.1 (11/11/11)
- Support for embedding a web server using a Rack::Handler
Servlet/Filter
- Use bundler/maven for project's dependency management
- 1.9 $LOAD_PATH fix when jruby.home is set to /tmp
- Fix /config.ru resource loading on AppEngine
- Support for passing arguments to runtimes via
jruby.runtime.arguments
- JavaServletStore rewrite based upon Rack::Session::Abstract::ID
- Upgrade to Rack 1.3.5
== 1.0.10 (08/24/11)
- Bugfix release for Rails 3.1
- Upgrade to Rack 1.3.2
== 1.0.9 (05/24/11)
- Bugfix release for Trinidad 1.2.x
- GH#27: Deal with incompatible signature change between JRuby 1.5.6
and 1.6.
- Properly convert URLs to files for __FILE__ binding when evaluating
init.rb (Ketan Padegaonkar)
== 1.0.8 (03/21/11)
- Add a check for /config.ru if not found in /WEB-INF (for appengine gem)
- Modify LocalContext to support minimal LocalConfig for JMS (Garret Conaty)
- JRUBY-5573: Add support for log4j
- Process RUBYOPT variable if it's set
- Change application factory to use ScriptingContainer API for
creating runtimes
- Upgrade to Rack 1.2.2
- GH#21: Implement RackInput#size
== 1.0.7 (03/04/11)
- JRUBY_RACK-36: Always set env['HTTPS'] according to request.getScheme
- GH#10: Add `jruby.rack.ignore.env` property which clears out the ENV
hash in each runtime to insulate the application from the environment.
- GH#12: Another fix to suppress client abort exceptions
- GH#14: Remove trailing slash from jruby.home
- GH#15: Fix infinite redirect issue with Winstone
- GH#17: __FILE__ constant inside config.ru is not absolute
== 1.0.6 (01/20/11)
- GH#4: Related to JRUBY-5281 and spaces in the path. Copy jruby.home
fix here also. Fixes "no such file to load" LoadErrors for lots of
cases.
- NOTE: Next release will remove this code from JRuby-Rack completely,
relying on JRuby to properly determine jruby.home.
- GH#8: Allow DefaultRackApplicationFactory to use an existing, single
runtime. (David Calavera)
- GH#9: Support chunked Transfer-Encoding, allowing for early flush of
the output (Alejandro Crosa)
- Add some new options for handling the Rack body.
- If the body object responds to `#call`, then the servlet output
stream will be yielded to it.
- If the body object responds to `#to_channel`, then JRuby-Rack will
copy the channel to the output stream for you. The same happens if
the body responds to `#to_inputstream`.
- Otherwise, JRuby-Rack follows the standard Rack behavior of
calling `#each` on the body and copying the contents to the output
stream.
- GH#7: JavaServletStore: Add missing #exists? and #destroy
implementations
- JRUBY_RACK-38: Don't needlessly raise errors because of client abort
exceptions
- GH#5: Experimental background spooling enabled by
`jruby.rack.background.spool` context parameter
- JRUBY_RACK-39: Proper routing of / => /index.html (if it exists).
New config properties `jruby.rack.filter.adds.html` and
`jruby.rack.filter.verify.resource.exists` to tweak this behavior.
- Improved error and environment capture when something goes wrong,
e.g., `no such file to load` errors. Now a status dump will be put
in the server log. In the future, we may hook up a remote bug
submission capture process.
- Add env['SERVER_SOFTWARE'] to Rack environment.
- Hack around Bundler bug #1033
== 1.0.5 (01/11/11)
- GH#6: Add context-init parameter `jruby.compat.version` which can be
set to either `1.8` or `1.9` to start JRuby in the corresponding
Ruby version.
- Changes to rackup evaluation to help debugging: Set rackup filename
when executing config.ru, use a ; instead of \n when evaluating
rackup code
== 1.0.4
- Make sane defaults for app/gem/public paths when using
RailsFilesystemLayout (Kristian Meier)
- Add 'jruby.rack.slash.index' init param that forces / =>
/index.html. Fixes JRUBY_RACK-35 and makes Jetty 6 work without
having to configure dirAllowed in Jetty's default servlet.
- Switch to mostly relying on request URI and not so much servlet
path/path info. Makes Tomcat 7 work.
- Added rails.relative_url_append context parameter. This can be set in
your web.xml or similar to append a string to the end of the context
path when the RAILS_RELATIVE_URL_ROOT is set. This allows you to
host your rails app in a location other than the base context path
of your application. (Ben Rosenblum)
- Don't use toURI, following changes in JRuby 1.5.6.
== 1.0.3
- JRUBY-4892: Fix IO collapsing \r\n to \n on Windows
- Fix setting of relative_url_root in Rails 3
- Recognize META-INF/init.rb and WEB-INF/init.rb as init scripts.
== 1.0.2
- Upgrade to Rack 1.2.1 (required for Rails 3 RC)
- Retain any GEM_PATH that's set in the environment
- Fixed XML Schema Location definition for jsptaglib for JBoss 6
(NAKAMURA Hiroshi)
- JRUBY_RACK-33: Fix RackFilter to only append .html to path info if
the resource exists (thanks Patrick Cheng)
== 1.0.1
- 1.0.0 release had a packaging snafu. Too many releases in too short a timespan
== 1.0.0
- Might as well go to 1.0. We've been used in production code for a
while now.
- Turns out the LoadError path dumping is pretty annoying. Rearrange
the code and have it only activated by 'jruby.rack.debug.load'.
== 0.9.9
- 0.9.8 broke Rubygem's custom require
== 0.9.8
- Look for config.ru in either WEB-INF/config.ru or
WEB-INF/*/config.ru and use it for racking up the application.
'rackup' context parameter is still supported for embedding in
web.xml too.
- JRUBY_RACK-21: Add logging adapter classes for commons-logging and
slf4j. If you use either of these logging frameworks in your app,
simply set 'jruby.rack.logging' to 'clogging' or 'slf4j' in either
web.xml as a context parameter or as a system property to pipe Ruby
logs through those frameworks (h/t jcantrill).
- Fix bug with RackRewindableInput#read(N) -- should return nil when finished
- Fix Rails 3 logger configuration
- Only load vendor/rack if Rack is not already loaded
== 0.9.7
- Rails 3 support
- Fix "overrides final method getRuntime" error due to 1.5 Java class
generation changes
- Upgrade to Rack 1.1.0
- Upgrade to servlet 2.5 and jsp 2.1
- Fix SCRIPT_NAME/PATH_INFO overlap issue with context paths (seen on
GAE and elsewhere)
- JRUBY_RACK-8: adjust LOAD_PATH if jruby_home detection failed in the current environment
- JRUBY_RACK-23: JavaServletStore needs to be required before it can be set as the session store
- JRUBY_RACK-26: Rack crashes on multipart/form-data bodies submitted with curl (or other headless client)
- JRUBY_RACK-27: Rails.public_path has a trailing /
- JRUBY_RACK-29: Incorrectly Bundling jruby-rack-0.0.7.SNAPSHOT.jar
- JRUBY_RACK-19: Add a jruby-rack gem for finding the jar file
- JRUBY_RACK-24: Support non-war deployment of Rails apps
== 0.9.6
- JRUBY_RACK-22: Ensure we call #close on the body per the Rack spec.
- Set jruby.management.enabled true when creating a runtime. JRuby 1.5
will default this flag to false, but you probably still want JMX
capability inside an appserver.
- Miscellaneous spec cleanup due to changes in JRuby 1.5
== 0.9.5
- Upgrade to Rack 1.0.0. However, if you supply Rack in your
application (either via rubygems or by vendoring it), it will take
precedence -- JRuby-Rack's bundled copy is only loaded as a
fallback. This allows you to upgrade Rack without having to wait for
a new JRuby-Rack release.
- Implement Rack-based java servlet session mechanism. You'll have to
turn on java servlet sessions by setting
ActionController::Base.session_store = :java_servlet_store
in your config/initializers/session_store.rb.
- JRUBY_RACK-7: Implement a rewindable 'rack.input' shim between the
servlet input stream and the Rack environment. Below a certain
byte-size threshold, the input is entirely buffered in memory. Above
the threshold, the input is written to a tempfile. The default
threshold is 64k, and can be controlled by the system property
'jruby.rack.request.size.threshold.bytes'.
- The previous non-rewindable input behavior can be re-instated by
setting the system property 'jruby.rack.input.rewindable' to false.
Despite being out of spec, environments such as Google AppEngine
require this behavior because writing to a tempfile is not possible.
- JRUBY_RACK-4: deal with threading and to_io by assigning IO object
to an instance variable instead of defining a singleton method on
the metaclass/singleton class
- JRUBY_RACK-17: Fix SCRIPT_NAME/PATH_INFO in root context (Chris
Read)
- JRUBY_RACK-10, JRUBY_RACK-15: Fix request channel read issue w/
POSTs and multiparts (Michael Pitman, Lenny Marks)
- JRUBY_RACK-14: Override both Servlet service methods (Michael
Pitman)
== 0.9.4
- PLEASE NOTE: Prior to 0.9.4, jruby-rack would try to use the java
servlet session store by default. This caused more confusion than
it's worth; so the default Rails cookie session store has been
reinstated for this release.
- Upgrade bundled Rack version to 0.9.1
- Introduce RackLogger, defaults to log to servlet context but can be
made to point to stdout by setting -Djruby.rack.logging=stdout (for
Google AppEngine)
- Detect Rails 2.3 rack machinery and dispatch to it rather than the
legacy CGI shim.
- TODO: Still missing a java servlet Rack::Session adapter for Rails
2.3. Should have it for next release.
- Update example Rails application to Rails 2.3.2, include bits for
deployment to Google AppEngine using Warbler.
- RackApplication-related core Java classes have been insulated from
the servlet API, so that (parts of) JRuby-Rack can be used outside
of a servlet container. If your application or library is coupled to
these classes, you'll likely be broken with this release. See Nick
for details.
- Fix TLD to be more compatible (Fred McHale).
- Switched main code repository to kenai.com. Github.com still
available as a mirror and for forking.
- EXPERIMENTAL: Beginnings of a JMS API (more details to come)
- REMOVAL: All the goldspike compatibility bits have been removed. You
should upgrade your application to use a web.xml similar to what
comes with Warbler.
== 0.9.3
- Merb updates for 1.0 compatibility
- Patch race condition in runtime pooling that allowed more than max
number of runtimes
- Fix bug with backref interpretation and windows paths
- JRUBY-2908: Add fallback for when servletContext.getRealPath doesn't
work (Joern Hartmann)
- Add extra prevention to ensure that IO descriptor keys do not leak in
the runtime's cache of descriptors (see also JRUBY-3185)
- Switched to dual rake/maven build process
- Switched main code repository to github (for now)
== 0.9.2
- Upgrade to Rack 0.4.0
- Only chdir at startup when the /WEB-INF directory exists (fix for jetty-rails)
- Fix typos in rails tag tld
- Add getRuntime to RackApplication for use by non-web embedded applications
- Use a shared application factory for Rails if max runtimes == 1 (to support multi-threaded Rails)
- Change from jruby.initial.runtimes to jruby.min.runtimes to be consistent w/ Warbler
== 0.9.1
- Change each runtime's notion of current directory to /WEB-INF, so you can do
loads and requires relative to WEB-INF
- JRUBY-2507: Update Rails boot override to not pre-load action_controller
- Don't assume or set cache_template_loading to true, rely on Rails to do it for us
- Set ENV['HTTPS'] = 'on' for Rails depending on servlet request scheme (Lenny Marks)
- Fix request URI -- must include query string
- Updated to be built and tested against JRuby 1.1.3
- Ensure that gem environment is set up for plain rack apps too
- JRUBY-2594: Fix URI-escaping issue (e.g., when spaces are in the path)
- Make use of 'Rails.public_path' in Rails 2.1
- JRUBY-2620: Fix issue with non-string headers
- Support integer and date headers directly
- Examples: Rails updated to 2.1, Camping and Sinatra examples added/working
== 0.9
- First public release.