private XmsPooledConsumer PlainProducerFactory(Pool<XmsPooledConsumer> pool, XmsDestination destination)
 {
     log.Info("Going to create new plain consumer for destination {0}".FormatWith(destination));
     var producer = new XmsConsumer(destination, transactional);
     var pooled = new XmsPooledConsumer(pool, producer);
     return pooled;
 }
 private Pool<XmsPooledConsumer> CreatePool(XmsAddress address)
 {
     log.Info("Going to create new consumer pool for address {0}".FormatWith(address));
     //TODO: make this configurable
     var store = new StackStore<XmsPooledConsumer>(60.Seconds(), 30.Seconds());
     var pool = new Pool<XmsPooledConsumer>(10, p =>
         {
             log.Info("Going to create new plain consumer for address {0}".FormatWith(address));
             var consumer = new XmsConsumer(address, transactional);
             var pooled = new XmsPooledConsumer(p, consumer);
             return pooled;
         }, store);
     return pool;
 }
 private XmsPooledConsumer CreateFailingStub(Pool<XmsPooledConsumer> pool)
 {
     var producer = new XmsConsumerStub().StubReceiveNoWait(() => { throw new TestException(); });
     var pooled = new XmsPooledConsumer(pool, producer);
     return pooled;
 }