@Override
  public void afterPropertiesSet() throws Exception {
    // we instantiate the connection factory here due to https://jira.spring.io/browse/XD-2647
    ZookeeperConfiguration configuration = new ZookeeperConfiguration(this.zookeeperConnect);
    configuration.setBufferSize(socketBufferSize);
    configuration.setMaxWait(defaultMaxWait);
    DefaultConnectionFactory defaultConnectionFactory = new DefaultConnectionFactory(configuration);
    defaultConnectionFactory.afterPropertiesSet();
    this.connectionFactory = defaultConnectionFactory;
    if (retryOperations == null) {
      RetryTemplate retryTemplate = new RetryTemplate();

      SimpleRetryPolicy simpleRetryPolicy = new SimpleRetryPolicy();
      simpleRetryPolicy.setMaxAttempts(METADATA_VERIFICATION_RETRY_ATTEMPTS);
      retryTemplate.setRetryPolicy(simpleRetryPolicy);

      ExponentialBackOffPolicy backOffPolicy = new ExponentialBackOffPolicy();
      backOffPolicy.setInitialInterval(METADATA_VERIFICATION_RETRY_INITIAL_INTERVAL);
      backOffPolicy.setMultiplier(METADATA_VERIFICATION_RETRY_BACKOFF_MULTIPLIER);
      backOffPolicy.setMaxInterval(METADATA_VERIFICATION_MAX_INTERVAL);
      retryTemplate.setBackOffPolicy(backOffPolicy);
      retryOperations = retryTemplate;
    }
    super.afterPropertiesSet();
  }
    @Bean
    public RetryTemplate retryTemplate() {
      RetryTemplate retryTemplate = new RetryTemplate();
      FixedBackOffPolicy fixedBackOffPolicy = new FixedBackOffPolicy();
      fixedBackOffPolicy.setBackOffPeriod(2000l);
      retryTemplate.setBackOffPolicy(fixedBackOffPolicy);

      SimpleRetryPolicy retryPolicy = new SimpleRetryPolicy();
      retryPolicy.setMaxAttempts(3);

      retryTemplate.setRetryPolicy(retryPolicy);
      return retryTemplate;
    }