Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down Expand Up @@ -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
Expand Down
43 changes: 18 additions & 25 deletions src/main/java/org/jruby/rack/ext/Logger.java
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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
Expand Down Expand Up @@ -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);
}

Expand Down Expand Up @@ -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);
}

Expand Down Expand Up @@ -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];
Expand Down Expand Up @@ -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 =
Expand All @@ -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> T toJava(Class<T> target) {
// NOTE: maybe this is not a good idea ?!
if ( RackLogger.class == target ) return (T) logger;
return super.toJava(target);
}
Expand All @@ -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.
*/
Expand Down
23 changes: 8 additions & 15 deletions src/main/ruby/jruby/rack.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down
4 changes: 0 additions & 4 deletions src/main/ruby/jruby/rack/booter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading