Method: ActiveMessaging::Adapters::Jms::Connection#send

Defined in:
lib/activemessaging/adapters/jms.rb

#send(queue_name, body, headers = {}) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/activemessaging/adapters/jms.rb', line 63

def send queue_name, body, headers={}
  queue_name = check_destination_type queue_name, headers
  producer = find_or_create_producer queue_name, headers.symbolize_keys
  message = @session.create_text_message body
  headers.stringify_keys.each do |key, value|
    if ['id', 'message-id', 'JMSMessageID'].include? key
      message.setJMSMessageID value.to_s
    elsif ['correlation-id', 'JMSCorrelationID'].include? key
      message.setJMSCorrelationID value.to_s
    elsif ['expires', 'JMSExpiration'].include? key
      message.setJMSExpiration value.to_i
    elsif ['persistent', 'JMSDeliveryMode'].include? key
      message.setJMSDeliveryMode(value ? 2 : 1)
    elsif ['priority', 'JMSPriority'].include? key
      message.setJMSPriority value.to_i
    elsif ['reply-to', 'JMSReplyTo'].include? key
      message.setJMSReplyTo value.to_s
    elsif ['type', 'JMSType'].include? key
      message.setJMSType value.to_s
    else #is this the most appropriate thing to do here?
      message.set_string_property key, value.to_s
    end
  end
  producer.send message
end