Writing a Logstash GEM gives an error: undefined local variable or method


(Isra) #1

Trying to build a gem to use it for Logstash as a filter. I'm using classes and methods from a .jar file.

The following is my Jruby code so far:

require 'java'
require 'Processing.jar'

$CLASSPATH << 'lib'

class LogStash::Filters::Processing < LogStash::Filters::Base

    config_name "process"
    score = JavaUtilities.get_proxy_class('process.Process')  
    @score = score.new ("/path/")

  public
  def register
  end

  public
  def filter(event)
    if @text
      event["NewField"] = @score.myMethod(event[@text])
    end
    filter_matched(event)
  end

end

However, it gave me the following error:

undefined local variable or method score.myMethod(event["text"])

So, I tried the following:

  .
  .
  .
  public
  def filter(event)
        score = JavaUtilities.get_proxy_class('process.Process')  
        @score = score.new ("/path/")
        event["NewField"] = @score.myMethod(@text)
        filter_matched(event)
  end   
end

But it gave me the error:

> SyntaxError: dynamic constant assignment error. 

Please note that I tried this in a normal jruby file and everything worked with me. Using Logstash's filter however is what seems to be giving me an issue here.. Any help? PLEASE!!!

Thank you.


(system) #2