*
* @param config The container-specific configuration for the new container
* @return a fully initialized (but not started!) SimpleMessageListenerContainer instance.
*/
public SimpleMessageListenerContainer createContainer(SpringAMQPConsumerConfiguration config) {
SimpleMessageListenerContainer newContainer = rabbitMqStrategy.createContainer();
newContainer.setConnectionFactory(connectionFactory);
if (config.getTransactionManager() != null) {
newContainer.setChannelTransacted(true);
newContainer.setTransactionManager(config.getTransactionManager());
}
if (config.getErrorHandler() != null) {
newContainer.setErrorHandler(config.getErrorHandler());
}
if (config.getPrefetchCount() != null) {
newContainer.setPrefetchCount(config.getPrefetchCount());
}
if (config.getTxSize() != null) {
newContainer.setTxSize(config.getTxSize());
}
if (config.getAdviceChain() != null) {
newContainer.setAdviceChain(config.getAdviceChain());
}
if (config.getRecoveryInterval() != null) {
newContainer.setRecoveryInterval(config.getRecoveryInterval());
}
if (config.getConcurrentConsumers() != null) {
newContainer.setConcurrentConsumers(config.getConcurrentConsumers());
}
if (config.getReceiveTimeout() != null) {
newContainer.setReceiveTimeout(config.getReceiveTimeout());
}
if (config.getShutdownTimeout() != null) {
newContainer.setShutdownTimeout(config.getShutdownTimeout());
}
if (config.getTaskExecutor() != null) {
newContainer.setTaskExecutor(config.getTaskExecutor());
}
if (config.getTransactionAttribute() != null) {
newContainer.setTransactionAttribute(config.getTransactionAttribute());
}
if (config.getMessagePropertiesConverter() != null) {
newContainer.setMessagePropertiesConverter(config.getMessagePropertiesConverter());
}
if (config.getAcknowledgeMode() != null) {
newContainer.setAcknowledgeMode(config.getAcknowledgeMode());
}
if (config.getExclusive() != null) {
rabbitMqStrategy.setExclusive(newContainer, config.getExclusive());
}
newContainer.afterPropertiesSet();
return newContainer;
}