code: static BeanDefinitionBuilder startClientBuilder(Class beanClass, String properties,
                                                      boolean forceMapping, boolean forceTemplate,
                                                      boolean mergeMapping, boolean mergeSettings,
                                                      boolean autoscan, String classpathRoot, String mappings,
                                                      String aliases, String templates, String async, String taskExecutor) {
          BeanDefinitionBuilder nodeFactory = BeanDefinitionBuilder.rootBeanDefinition(beanClass);
          if (properties != null && properties.length() > 0) {
              nodeFactory.addPropertyReference("properties", properties);
          }
          nodeFactory.addPropertyValue("forceMapping", forceMapping);
          nodeFactory.addPropertyValue("forceTemplate", forceTemplate);
          nodeFactory.addPropertyValue("mergeMapping", mergeMapping);
          nodeFactory.addPropertyValue("mergeSettings", mergeSettings);
          nodeFactory.addPropertyValue("autoscan", autoscan);
          if (classpathRoot != null && classpathRoot.length() > 0) {
              nodeFactory.addPropertyValue("classpathRoot", classpathRoot);
          }
          if (mappings != null && mappings.length() > 0) {
              nodeFactory.addPropertyValue("mappings", mappings);
          }
          if (aliases != null && aliases.length() > 0) {
              nodeFactory.addPropertyValue("aliases", aliases);
          }
          if (templates != null && templates.length() > 0) {
              nodeFactory.addPropertyValue("templates", templates);
          }
  
  		if (async != null && async.length() > 0) {
  			nodeFactory.addPropertyValue("async", async);
  		}
  		if (taskExecutor != null && taskExecutor.length() > 0) {
  			nodeFactory.addPropertyReference("taskExecutor", taskExecutor);
  		}
  
  
          return nodeFactory;
      }
docs: Managing common properties for TransportClient