title: Spring Integration message-driven-channel-adapter tag not honoring bean name?
body: <p>I'm using Spring Integration 4.0.3.RELEASE and Spring Framework 4.0.2.RELEASE.</p>
  
  <p>I have the following Spring Integration code in my context file:</p>
  
  <pre><code>&lt;int-jms:message-driven-channel-adapter id="exchangeQueueChannelAdapter" 
  auto-startup="true"
  destination="exchangeQueueJmsDestination"
  channel="exchangeSpringQueueChannel"
  receive-timeout="1000"
  connection-factory="WMQCachedConnectionFactory"
  acknowledge="transacted"
  transaction-manager="WMQTxManager"
  error-channel="errorChannel"/&gt;    
  </code></pre>
  
  <p>Notice that I've given the bean being created a name [exchangeQueueChannelAdapter].
  When exceptions occur within the underlying <code>DefaultMessageListenerContainer</code> however it doesn't appear like the Spring Integration tags are passing the beanName to the <code>DefaultMessageListenerContainer</code> class.  This results in an exception looking like this (notice the thread name):</p>
  
  <pre><code>[org.springframework.jms.listener.DefaultMessageListenerContainer#0-1] WARN  (org.springframework.jms.listener.DefaultMessageListenerContainer) - Setup of JMS message listener invoker failed for destination 'queue://CDCS.F370ZZZ.TRADOUT.FIXML' - trying to recover. Cause: Could not create JMS transaction; nested exception is javax.jms.JMSException: Could not connect to broker URL: tcp://localhost:61616. Reason: java.net.ConnectException: Connection refused: connect
  [DefaultMessageListenerContainer-1] ERROR (org.springframework.jms.listener.DefaultMessageListenerContainer) - Could not refresh JMS Connection for destination 'citi.cibtech.na.ExPro_149155.DERIVS_ETD_TRD.TMG_CONTROLBUS.T1' - retrying in 5000 ms. Cause: Could not connect to broker URL: tcp://localhost:61616. Reason: java.net.ConnectException: Connection refused: connect
  </code></pre>
  
  <p>Looking at the <code>DefaultMessageListenerContainer</code> code, it appears that it would prepend the beanName to the front of the threadname if it were passed into the class when it's initialized.</p>
  
  <pre><code>protected TaskExecutor createDefaultTaskExecutor() {
    String beanName = getBeanName();
    String threadNamePrefix = (beanName != null ? beanName + "-" : DEFAULT_THREAD_NAME_PREFIX);
    return new SimpleAsyncTaskExecutor(threadNamePrefix);
  }
  </code></pre>
  
  <p>Ideally I'd like a way to be able to get the thread to have my bean name somewhere in the name of the thead (i.e. "exchangeQueueChannelAdapter#0-1").  Is there a way to do that without having to create a <code>DefaultMessageListenerContainer</code> on my own?  Perhaps I'm missing something?</p>