Closed
Description
JRuby-Rack 1.2 is aimed as a cleanup release which might break some binary compatibility with 1.1.x when its worth (a badly designed API or due performance reasons). This should only affect users even when they explicitly depend on JRuby-Rack APIs - the very most users won't be affected at all.
No one seems to be working towards 1.2 much currently. If you're interested in seeing some of these enhancements/features/performance work get in touch or show some support at BountySource
- performance improvements by going native with crucial .rb parts
- native JRuby::Rack::Response
- native JRuby::Rack::Logger
- native Rack::Handler
- compile against Java 1.6 (likely only JRuby 1.7 will be supported)
- update/compile against Servlet 3.0 (JavaEE 6) at minimum
-
refactor project build - use Mavenfile / JBundler - when no runtimes specified - default to using a shared one (for all)
- verify precompiled assets serving (e.g. with Trinidad)
- support for servlet/filter auto-configuration on JEE 6 scanning ?
- map logger levels 1-to-1
- thread-safe logger.silence by default (with default
JRuby::Rack.logger
) ! - support
env['rack.errors']
- support (default)
env['rack.session']
for all (not just Rails)- consider changing session_options to a frozen Hash
@env['rack.session.options'] ||= {}
- consider changing session_options to a frozen Hash
- do not read body ... warn on
rewind
by default (review usage in Rack/Rails middleware) - alternatives to rack's multi-part (needs rewind and uses temp files for >=128k)
- default to using the
ServletEnv
forRack::Handler::Servlet
(if avoidsrewind
) ? - servlet_env file-upload detection ?! ... clearly rack file upload is bloated by using memory.
- better embedding API - org.jruby.rack.embed seems rather confusing (and not that usable)
- make the listener optional and use the same one for rack as well as rails apps
- improve
ErrorApp
(HTTP_ACCEPT detection, support for serving 503.json) - remove deprecated files e.g. jruby/rack/errors
- remove (old) Merb support
- review booter support setting
jruby.rack.booter = :rails
to force ? - possibly release booter, could
RailsBooter.to_app
calls be avoided ? - RailsBooter - default to Rails 3/4 - detect 2.3 specifics instead of the other way around
- cleanup old Bundler "ext" + polluted_with_anyio? check in Rack::Response
- verify Rack::Response send_file extensions are working - include TC support?
- setup Java/Ruby documentation
- introduce Websockets support
- handle ActionController::Live streaming
- implement Rack::Async-chronous processing
- review Rails/Sinatra example
-
try out app-engine once again with an example