@Override
  public C createMessageListenerContainer(JmsListenerEndpoint endpoint) {
    C instance = createContainerInstance();

    if (this.connectionFactory != null) {
      instance.setConnectionFactory(this.connectionFactory);
    }
    if (this.destinationResolver != null) {
      instance.setDestinationResolver(this.destinationResolver);
    }
    if (this.errorHandler != null) {
      instance.setErrorHandler(this.errorHandler);
    }
    if (this.messageConverter != null) {
      instance.setMessageConverter(this.messageConverter);
    }

    if (this.sessionTransacted != null) {
      instance.setSessionTransacted(this.sessionTransacted);
    }
    if (this.sessionAcknowledgeMode != null) {
      instance.setSessionAcknowledgeMode(this.sessionAcknowledgeMode);
    }

    if (this.pubSubDomain != null) {
      instance.setPubSubDomain(this.pubSubDomain);
    }
    if (this.subscriptionDurable != null) {
      instance.setSubscriptionDurable(this.subscriptionDurable);
    }
    if (this.clientId != null) {
      instance.setClientId(this.clientId);
    }

    endpoint.setupMessageContainer(instance);

    initializeContainer(instance);

    return instance;
  }