Revision 5b0541c9 logic/src/main/scala/gr/grnet/aquarium/messaging/amqp/rabbitmq/v091/RabbitMQConsumer.scala

b/logic/src/main/scala/gr/grnet/aquarium/messaging/amqp/rabbitmq/v091/RabbitMQConsumer.scala
39 39

  
40 40
import confmodel.RabbitMQConsumerModel
41 41
import com.rabbitmq.client.{Channel => JackRabbitChannel, Connection => JackRabbitConnection, ConnectionFactory => JackRabbitConnectionFactory}
42
import gr.grnet.aquarium.util.Loggable
42 43

  
43 44
/**
44 45
 * 
45 46
 * @author Christos KK Loverdos <loverdos@gmail.com>.
46 47
 */
47
class RabbitMQConsumer(private[v091] val owner: RabbitMQConnection, val confModel: RabbitMQConsumerModel) extends AMQPConsumer {
48
class RabbitMQConsumer(private[v091] val owner: RabbitMQConnection, val confModel: RabbitMQConsumerModel) extends AMQPConsumer with Loggable  {
49
  private[v091] val _rabbitChannel = {
50
    val _ch = owner._rabbitConnection.createChannel()
51
    logger.info("Created rabbit channel %s for %s".format(_ch, this.toString))
52
    val exchange = owner.confModel.exchange
53
    val exchangeType = owner.confModel.exchangeType
54
    val exchangeIsDurable = owner.confModel.isDurable
55
    val queue = confModel.queue
56
    val routingKey = confModel.routingKey
57
    val queueIsDurable = confModel.queueIsDurable
58
    val queueIsAutoDelete = confModel.queueIsAutoDelete
59
    val queueIsExclusive = confModel.queueIsExclusive
60

  
61
    val ed = _ch.exchangeDeclare(exchange, exchangeType, exchangeIsDurable)
62
    logger.info("Declared exchange %s for %s with result %s".format(exchange, this, ed))
63

  
64
    _ch.queueDeclare(queue, queueIsDurable, queueIsExclusive, queueIsAutoDelete, null)
65

  
66
    _ch.queueBind(queue, exchange, routingKey)
67
    _ch
68
  }
69

  
48 70
  def name = confModel.name
49 71

  
72
  def newDeliveryAgent(handler: AMQPDeliveryHandler) = new RabbitMQDeliveryAgent(this, handler)
73

  
50 74
  override def toString = {
51 75
    val connName = owner.name
52 76
    val confName = owner.owner.name

Also available in: Unified diff