class TorqueBox::Stomp::JmsStomplet::MessageListener

@api private

Public Class Methods

new(subscriber, options={}) click to toggle source
# File lib/torquebox/stomp/jms_stomplet.rb, line 110
def initialize(subscriber, options={})
  @subscriber = subscriber
  @encoding = options[:encoding] 
end

Public Instance Methods

onMessage(jms_message) click to toggle source
# File lib/torquebox/stomp/jms_stomplet.rb, line 115
def onMessage(jms_message)
  content = TorqueBox::Messaging::Message.new( jms_message ).decode
  ( content = TorqueBox::Codecs.encode( content, @encoding ) ) if @encoding
  stomp_message = TorqueBox::Stomp::Message.new( content )
  jms_message.property_names.each do |name|
    value = jms_message.getObjectProperty( name ).to_s
    stomp_message.headers.put( name.to_s.to_java( java.lang.String ), value.to_java( java.lang.String) ) if value
  end
  if ( stomp_message.headers[ 'content-type' ] == nil )
    if ( @encoding == :json )
      stomp_message.headers.put( "content-type", "application/json" )
    else
      stomp_message.headers.put( "content-type", "text/plain" )
    end
  end
  @subscriber.send( stomp_message )
end