diff --git a/Rakefile b/Rakefile index e40a44677..424ac9702 100644 --- a/Rakefile +++ b/Rakefile @@ -108,7 +108,7 @@ task :speconly => [ :resources, :test_resources ] do if ENV['SKIP_SPECS'].to_s == 'true' puts "Skipping specs due to SKIP_SPECS=#{ENV['SKIP_SPECS']}" else - opts = ENV['SPEC_OPTS'] ? ENV['SPEC_OPTS'] : %q{ --format documentation --color } + opts = ENV['SPEC_OPTS'] ? ENV['SPEC_OPTS'] : %q{ --format documentation --force-color } spec = ENV['SPEC'] || File.join(Dir.getwd, "src/spec/ruby/**/*_spec.rb") opts = opts.split(' ').push *FileList[spec].to_a ruby = ENV['RUBY'] || 'jruby' @@ -165,7 +165,7 @@ end desc "Build the jruby-rack-#{GEM_VERSION}.gem" task :gem => [target_jar, target_jruby_rack, target_jruby_rack_version] do - Rake::Task['spec'].invoke unless ENV['SKIP_SPEC'] == 'true' + Rake::Task['spec'].invoke unless ENV['SKIP_SPECS'] == 'true' cp FileList["History.md", "LICENSE.txt", "README.md"], "target/gem" cp target_jar, "target/gem/lib" if (jars = FileList["target/gem/lib/*.jar"].to_a).size > 1 diff --git a/src/main/java/org/jruby/rack/ext/Logger.java b/src/main/java/org/jruby/rack/ext/Logger.java index 40506de9d..b799503da 100644 --- a/src/main/java/org/jruby/rack/ext/Logger.java +++ b/src/main/java/org/jruby/rack/ext/Logger.java @@ -59,6 +59,8 @@ public class Logger extends RubyObject { // implements RackLogger // Logger::Severity : + private static final int LEVEL_NOT_SET = -1; + // Low-level information, mostly for developers. static final int DEBUG = 0; // Generic (useful) information about system operation. @@ -72,9 +74,7 @@ public class Logger extends RubyObject { // implements RackLogger // An unknown message that should always be logged. static final int UNKNOWN = 5; - private static final int NOT_SET = -1; - - private int level = NOT_SET; + private int level = LEVEL_NOT_SET; private RackLogger logger; // the "real" logger private IRubyObject formatter = null; // optional @@ -132,14 +132,16 @@ public RackLogger getRealLogger() { @JRubyMethod(name = "level", alias = "sev_threshold") public IRubyObject get_level(final ThreadContext context) { - if ( this.level == NOT_SET ) return context.nil; - return context.runtime.newFixnum(this.level); + return this.level == LEVEL_NOT_SET ? context.nil : context.runtime.newFixnum(this.level); } @JRubyMethod(name = "level=", alias = "sev_threshold=") public IRubyObject set_level(final ThreadContext context, final IRubyObject level) { - if ( level.isNil() ) { this.level = NOT_SET; return level; } - this.level = (int) level.convertToInteger("to_i").getLongValue(); + if ( level.isNil() ) { + this.level = LEVEL_NOT_SET; + return level; + } + this.level = toInt(level); return get_level(context); } @@ -182,10 +184,9 @@ private boolean isEnabledFor(final int severity) { return isEnabledFor(severity, mapLevel(severity)); } - private boolean isEnabledFor(final int severity, - final RackLogger.Level loggerLevel) { + private boolean isEnabledFor(final int severity, final RackLogger.Level loggerLevel) { if ( loggerLevel == null ) return level <= severity; - if ( level == NOT_SET ) return logger.isEnabled(loggerLevel); + if ( level == LEVEL_NOT_SET) return logger.isEnabled(loggerLevel); return level <= severity && logger.isEnabled(loggerLevel); } @@ -337,9 +338,7 @@ public IRubyObject unknown(final ThreadContext context, final Block block) { public IRubyObject add(final ThreadContext context, final IRubyObject[] args, final Block block) { int severity = UNKNOWN; final IRubyObject sev = args[0]; - if ( ! sev.isNil() ) { - severity = (int) sev.convertToInteger("to_i").getLongValue(); - } + if ( !sev.isNil() ) severity = toInt(sev); IRubyObject msg; if ( args.length > 1 ) { msg = args[1]; @@ -415,16 +414,14 @@ public IRubyObject format_message(final ThreadContext context, final IRubyObject private IRubyObject format_message(final ThreadContext context, final int severityVal, final long datetimeMillis, final IRubyObject progname, final IRubyObject msg) { - final IRubyObject severity = - RubyString.newStringShared(context.runtime, formatSeverity(severityVal)); + final IRubyObject severity = RubyString.newStringShared(context.runtime, formatSeverity(severityVal)); final RubyTime datetime = RubyTime.newTime(context.runtime, datetimeMillis); return format_message(context, new IRubyObject[] { severity, datetime, progname, msg }); } @JRubyMethod(visibility = Visibility.PRIVATE) public IRubyObject format_severity(final ThreadContext context, final IRubyObject sev) { - final int severity = (int) sev.convertToInteger("to_i").getLongValue(); - return RubyString.newStringShared(context.runtime, formatSeverity(severity)); + return RubyString.newStringShared(context.runtime, formatSeverity(toInt(sev))); } private static final ByteList FORMATTED_DEBUG = @@ -451,10 +448,13 @@ private static ByteList formatSeverity(final int severity) { return FORMATTED_ANY; } + private static int toInt(final IRubyObject level) { + return level.convertToInteger("to_i").getIntValue(); + } + @SuppressWarnings("unchecked") @Override public T toJava(Class target) { - // NOTE: maybe this is not a good idea ?! if ( RackLogger.class == target ) return (T) logger; return super.toJava(target); } @@ -467,13 +467,6 @@ private void doLog(RubyString message) { logger.log( message ); } - // (old) BufferedLogger API compatibility : - - @JRubyMethod(name = "flush", alias = { "auto_flushing", "auto_flushing=" }) - public IRubyObject stub(final ThreadContext context) { - return context.nil; - } - /** * @deprecated Likely, no longer used at all, mostly for 1.1 compatibility. */ diff --git a/src/main/ruby/jruby/rack.rb b/src/main/ruby/jruby/rack.rb index 71f2fc551..cf2378a86 100644 --- a/src/main/ruby/jruby/rack.rb +++ b/src/main/ruby/jruby/rack.rb @@ -9,15 +9,9 @@ module JRuby module Rack - - # @deprecated use {JRuby::Rack::Helpers#silence_warnings} instead - def self.silence_warnings(&block) - Helpers.silence_warnings(&block) - end - - def self.booter; @booter; end # :nodoc TODO do we need to keep after boot! ?! - class << self + # @private the (last) `JRuby::Rack::Booter` that performed `boot!` (used with tests) + attr_reader :booter # @return [String] the application (root) path. # @see JRuby::Rack::Booter#export_global_settings @@ -49,24 +43,23 @@ def context; @context ||= $servlet_context end # Sets the ("global") context for `JRuby::Rack`. def context=(context) - @context = context; @@logger = nil # reset the logger + @context = context + @@logger = nil # reset the logger end @@logger = nil # Returns a {Logger} instance that uses the {#context} as a logger. - def logger; @@logger ||= Logger.new(context!) end - # @private + def logger; @@logger ||= Logger.new(context) end + # @private only used with tests def logger=(logger); @@logger = logger end private # @deprecated Mostly for compatibility - not used anymore. - def logdev; ServletLog.new(context!) end; alias servlet_log logdev - - def context!; context || raise('no context available') end + def logdev; ServletLog.new(context) end + alias servlet_log logdev end - end end diff --git a/src/main/ruby/jruby/rack/booter.rb b/src/main/ruby/jruby/rack/booter.rb index 02501600e..e319f93af 100644 --- a/src/main/ruby/jruby/rack/booter.rb +++ b/src/main/ruby/jruby/rack/booter.rb @@ -221,10 +221,6 @@ def expand_path(path); layout.expand_path(path) end private - def silence_warnings(&block) - Helpers.silence_warnings(&block) - end - def path_to_file(url) url.toURI.toString rescue Java::JavaNet::URISyntaxException