@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(registry); } }
@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(registry); } }
private static AbstractBeanDefinition createSendToHandlerMethodReturnValueHandlerBeanDefinition(Element element, ParserContext parserContext, String sqsClientBeanName) { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(SendToHandlerMethodReturnValueHandler.class); if (StringUtils.hasText(element.getAttribute("send-to-message-template"))) { beanDefinitionBuilder.addConstructorArgReference(element.getAttribute("send-to-message-template")); } else { // TODO consider creating a utils for setting up the queue messaging template as it also created in QueueMessagingTemplateBeanDefinitionParser BeanDefinitionBuilder templateBuilder = BeanDefinitionBuilder.rootBeanDefinition(QueueMessagingTemplate.class); templateBuilder.addConstructorArgReference(sqsClientBeanName); templateBuilder.addConstructorArgReference(GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry())); beanDefinitionBuilder.addConstructorArgValue(templateBuilder.getBeanDefinition()); } return beanDefinitionBuilder.getBeanDefinition(); }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String amazonSqsClientBeanName = getCustomAmazonSqsClientOrDecoratedDefaultSqsClientBeanName(element, parserContext); if (StringUtils.hasText(element.getAttribute(DEFAULT_DESTINATION_ATTRIBUTE))) { builder.addPropertyValue("defaultDestinationName", element.getAttribute(DEFAULT_DESTINATION_ATTRIBUTE)); } builder.addConstructorArgReference(amazonSqsClientBeanName); builder.addConstructorArgReference(GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry())); if (StringUtils.hasText(element.getAttribute(MESSAGE_CONVERTER_ATTRIBUTE))) { builder.addConstructorArgReference(element.getAttribute(MESSAGE_CONVERTER_ATTRIBUTE)); } }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { if (StringUtils.hasText(element.getAttribute(DEFAULT_DESTINATION_ATTRIBUTE))) { builder.addPropertyValue("defaultDestinationName", element.getAttribute(DEFAULT_DESTINATION_ATTRIBUTE)); } builder.addConstructorArgReference(getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-sns", SNS_CLIENT_CLASS_NAME)); builder.addConstructorArgReference(GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry())); }
private static AbstractBeanDefinition createSendToHandlerMethodReturnValueHandlerBeanDefinition(Element element, ParserContext parserContext, String sqsClientBeanName) { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(SendToHandlerMethodReturnValueHandler.class); if (StringUtils.hasText(element.getAttribute("send-to-message-template"))) { beanDefinitionBuilder.addConstructorArgReference(element.getAttribute("send-to-message-template")); } else { // TODO consider creating a utils for setting up the queue messaging template as it also created in QueueMessagingTemplateBeanDefinitionParser BeanDefinitionBuilder templateBuilder = BeanDefinitionBuilder.rootBeanDefinition(QueueMessagingTemplate.class); templateBuilder.addConstructorArgReference(sqsClientBeanName); templateBuilder.addConstructorArgReference(GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry())); beanDefinitionBuilder.addConstructorArgValue(templateBuilder.getBeanDefinition()); } return beanDefinitionBuilder.getBeanDefinition(); }
private static BeanDefinition buildDatabaseInstancePolicy(Element element, ParserContext parserContext) { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(DatabaseInstanceStatusRetryPolicy.class); String amazonRdsClientBeanName = getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-rds", AMAZON_RDS_CLIENT_CLASS_NAME); beanDefinitionBuilder.addConstructorArgReference(amazonRdsClientBeanName); beanDefinitionBuilder.addConstructorArgValue(element.getAttribute(AmazonRdsDataSourceBeanDefinitionParser.DB_INSTANCE_IDENTIFIER)); String resourceIdResolverBeanName = GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry()); beanDefinitionBuilder.addPropertyReference("resourceIdResolver", resourceIdResolverBeanName); return beanDefinitionBuilder.getBeanDefinition(); }
private static BeanDefinition createElastiCacheFactoryBean(Element source, ParserContext parserContext, String clusterId, ManagedList<BeanDefinition> cacheFactories) { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(ELASTICACHE_FACTORY_BEAN); beanDefinitionBuilder.addConstructorArgReference(getCustomClientOrDefaultClientBeanName(source, parserContext, "amazon-elasti-cache", ELASTI_CACHE_CLIENT_CLASS_NAME)); beanDefinitionBuilder.addConstructorArgValue(clusterId); beanDefinitionBuilder.addConstructorArgReference(GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry())); beanDefinitionBuilder.addConstructorArgValue(cacheFactories); return beanDefinitionBuilder.getBeanDefinition(); }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { if (StringUtils.hasText(element.getAttribute(DEFAULT_DESTINATION_ATTRIBUTE))) { builder.addPropertyValue("defaultDestinationName", element.getAttribute(DEFAULT_DESTINATION_ATTRIBUTE)); } builder.addConstructorArgReference(getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-sns", SNS_CLIENT_CLASS_NAME)); builder.addConstructorArgReference(GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry())); }
private static BeanDefinition createElastiCacheFactoryBean(Element source, ParserContext parserContext, String clusterId, ManagedList<BeanDefinition> cacheFactories) { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(ELASTICACHE_FACTORY_BEAN); beanDefinitionBuilder.addConstructorArgReference(getCustomClientOrDefaultClientBeanName(source, parserContext, "amazon-elasti-cache", ELASTI_CACHE_CLIENT_CLASS_NAME)); beanDefinitionBuilder.addConstructorArgValue(clusterId); beanDefinitionBuilder.addConstructorArgReference(GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry())); beanDefinitionBuilder.addConstructorArgValue(cacheFactories); return beanDefinitionBuilder.getBeanDefinition(); }
private static BeanDefinition buildDatabaseInstancePolicy(Element element, ParserContext parserContext) { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(DatabaseInstanceStatusRetryPolicy.class); String amazonRdsClientBeanName = getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-rds", AMAZON_RDS_CLIENT_CLASS_NAME); beanDefinitionBuilder.addConstructorArgReference(amazonRdsClientBeanName); beanDefinitionBuilder.addConstructorArgValue(element.getAttribute(AmazonRdsDataSourceBeanDefinitionParser.DB_INSTANCE_IDENTIFIER)); String resourceIdResolverBeanName = GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry()); beanDefinitionBuilder.addPropertyReference("resourceIdResolver", resourceIdResolverBeanName); return beanDefinitionBuilder.getBeanDefinition(); }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String amazonSqsClientBeanName = getCustomAmazonSqsClientOrDecoratedDefaultSqsClientBeanName(element, parserContext); if (StringUtils.hasText(element.getAttribute(DEFAULT_DESTINATION_ATTRIBUTE))) { builder.addPropertyValue("defaultDestinationName", element.getAttribute(DEFAULT_DESTINATION_ATTRIBUTE)); } builder.addConstructorArgReference(amazonSqsClientBeanName); builder.addConstructorArgReference(GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry())); if (StringUtils.hasText(element.getAttribute(MESSAGE_CONVERTER_ATTRIBUTE))) { builder.addConstructorArgReference(element.getAttribute(MESSAGE_CONVERTER_ATTRIBUTE)); } }
protected void registerDataSource(BeanDefinitionRegistry beanDefinitionRegistry, String amazonRdsClientBeanName, String dbInstanceIdentifier, String password, boolean readReplica, String userName, String databaseName) { BeanDefinitionBuilder datasourceBuilder = getBeanDefinitionBuilderForDataSource(readReplica); //Constructor (mandatory) args datasourceBuilder.addConstructorArgReference(amazonRdsClientBeanName); datasourceBuilder.addConstructorArgValue(dbInstanceIdentifier); datasourceBuilder.addConstructorArgValue(password); //optional args datasourceBuilder.addPropertyValue("username", userName); datasourceBuilder.addPropertyValue("databaseName", databaseName); String resourceResolverBeanName = GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(beanDefinitionRegistry); datasourceBuilder.addPropertyReference("resourceIdResolver", resourceResolverBeanName); datasourceBuilder.addPropertyValue("dataSourceFactory", BeanDefinitionBuilder.rootBeanDefinition(TomcatJdbcDataSourceFactory.class).getBeanDefinition()); beanDefinitionRegistry.registerBeanDefinition(dbInstanceIdentifier, datasourceBuilder.getBeanDefinition()); }
protected void registerDataSource(BeanDefinitionRegistry beanDefinitionRegistry, String amazonRdsClientBeanName, String dbInstanceIdentifier, String password, boolean readReplica, String userName, String databaseName) { BeanDefinitionBuilder datasourceBuilder = getBeanDefinitionBuilderForDataSource(readReplica); //Constructor (mandatory) args datasourceBuilder.addConstructorArgReference(amazonRdsClientBeanName); datasourceBuilder.addConstructorArgValue(dbInstanceIdentifier); datasourceBuilder.addConstructorArgValue(password); //optional args datasourceBuilder.addPropertyValue("username", userName); datasourceBuilder.addPropertyValue("databaseName", databaseName); String resourceResolverBeanName = GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(beanDefinitionRegistry); datasourceBuilder.addPropertyReference("resourceIdResolver", resourceResolverBeanName); datasourceBuilder.addPropertyValue("dataSourceFactory", BeanDefinitionBuilder.rootBeanDefinition(TomcatJdbcDataSourceFactory.class).getBeanDefinition()); beanDefinitionRegistry.registerBeanDefinition(dbInstanceIdentifier, datasourceBuilder.getBeanDefinition()); }
private static void registerUserTagsMapIfNecessary(Element element, ParserContext parserContext, String rdsClientBeanName) { if (!StringUtils.hasText(element.getAttribute("user-tags-map"))) { return; } BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(USER_TAG_FACTORY_BEAN_CLASS_NAME); builder.addConstructorArgReference(rdsClientBeanName); builder.addConstructorArgValue(element.getAttribute(DB_INSTANCE_IDENTIFIER)); builder.addConstructorArgReference(getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-identity-management", IDENTITY_MANAGEMENT_CLIENT_CLASS_NAME)); // Use custom region-provider of data source if (StringUtils.hasText(element.getAttribute("region"))) { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition("com.amazonaws.regions.Region"); beanDefinitionBuilder.setFactoryMethod("getRegion"); beanDefinitionBuilder.addConstructorArgValue(element.getAttribute("region")); builder.addPropertyValue("region", beanDefinitionBuilder.getBeanDefinition()); } else { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(MethodInvokingFactoryBean.class); if (StringUtils.hasText(element.getAttribute("region-provider"))) { beanDefinitionBuilder.addPropertyValue("targetObject", new RuntimeBeanReference(element.getAttribute("region-provider"))); } else { beanDefinitionBuilder.addPropertyValue("targetObject", new RuntimeBeanReference(AmazonWebserviceClientConfigurationUtils. getRegionProviderBeanName(parserContext.getRegistry()))); } beanDefinitionBuilder.addPropertyValue("targetMethod", "getRegion"); builder.addPropertyValue("region", beanDefinitionBuilder.getBeanDefinition()); } String resourceResolverBeanName = GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry()); builder.addPropertyReference("resourceIdResolver", resourceResolverBeanName); parserContext.getRegistry().registerBeanDefinition(element.getAttribute("user-tags-map"), builder.getBeanDefinition()); }
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder datasourceBuilder = getBeanDefinitionBuilderForDataSource(element); //Constructor (mandatory) args String amazonRdsClientBeanName = getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-rds", AMAZON_RDS_CLIENT_CLASS_NAME); datasourceBuilder.addConstructorArgReference(amazonRdsClientBeanName); datasourceBuilder.addConstructorArgValue(element.getAttribute(DB_INSTANCE_IDENTIFIER)); datasourceBuilder.addConstructorArgValue(element.getAttribute(PASSWORD)); //optional args if (StringUtils.hasText(element.getAttribute(USERNAME))) { datasourceBuilder.addPropertyValue(USERNAME, element.getAttribute(USERNAME)); } if (StringUtils.hasText(element.getAttribute(DATABASE_NAME))) { datasourceBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(DATABASE_NAME), element.getAttribute(DATABASE_NAME)); } datasourceBuilder.addPropertyValue("dataSourceFactory", createDataSourceFactoryBeanDefinition(element)); //Register registry to enable cloud formation support String resourceResolverBeanName = GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry()); datasourceBuilder.addPropertyReference("resourceIdResolver", resourceResolverBeanName); registerUserTagsMapIfNecessary(element, parserContext, amazonRdsClientBeanName); return datasourceBuilder.getBeanDefinition(); }
private static void registerUserTagsMapIfNecessary(Element element, ParserContext parserContext, String rdsClientBeanName) { if (!StringUtils.hasText(element.getAttribute("user-tags-map"))) { return; } BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(USER_TAG_FACTORY_BEAN_CLASS_NAME); builder.addConstructorArgReference(rdsClientBeanName); builder.addConstructorArgValue(element.getAttribute(DB_INSTANCE_IDENTIFIER)); builder.addConstructorArgReference(getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-identity-management", IDENTITY_MANAGEMENT_CLIENT_CLASS_NAME)); // Use custom region-provider of data source if (StringUtils.hasText(element.getAttribute("region"))) { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition("com.amazonaws.regions.Region"); beanDefinitionBuilder.setFactoryMethod("getRegion"); beanDefinitionBuilder.addConstructorArgValue(element.getAttribute("region")); builder.addPropertyValue("region", beanDefinitionBuilder.getBeanDefinition()); } else { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(MethodInvokingFactoryBean.class); if (StringUtils.hasText(element.getAttribute("region-provider"))) { beanDefinitionBuilder.addPropertyValue("targetObject", new RuntimeBeanReference(element.getAttribute("region-provider"))); } else { beanDefinitionBuilder.addPropertyValue("targetObject", new RuntimeBeanReference(AmazonWebserviceClientConfigurationUtils. getRegionProviderBeanName(parserContext.getRegistry()))); } beanDefinitionBuilder.addPropertyValue("targetMethod", "getRegion"); builder.addPropertyValue("region", beanDefinitionBuilder.getBeanDefinition()); } String resourceResolverBeanName = GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry()); builder.addPropertyReference("resourceIdResolver", resourceResolverBeanName); parserContext.getRegistry().registerBeanDefinition(element.getAttribute("user-tags-map"), builder.getBeanDefinition()); }
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder datasourceBuilder = getBeanDefinitionBuilderForDataSource(element); //Constructor (mandatory) args String amazonRdsClientBeanName = getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-rds", AMAZON_RDS_CLIENT_CLASS_NAME); datasourceBuilder.addConstructorArgReference(amazonRdsClientBeanName); datasourceBuilder.addConstructorArgValue(element.getAttribute(DB_INSTANCE_IDENTIFIER)); datasourceBuilder.addConstructorArgValue(element.getAttribute(PASSWORD)); //optional args if (StringUtils.hasText(element.getAttribute(USERNAME))) { datasourceBuilder.addPropertyValue(USERNAME, element.getAttribute(USERNAME)); } if (StringUtils.hasText(element.getAttribute(DATABASE_NAME))) { datasourceBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(DATABASE_NAME), element.getAttribute(DATABASE_NAME)); } datasourceBuilder.addPropertyValue("dataSourceFactory", createDataSourceFactoryBeanDefinition(element)); //Register registry to enable cloud formation support String resourceResolverBeanName = GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry()); datasourceBuilder.addPropertyReference("resourceIdResolver", resourceResolverBeanName); registerUserTagsMapIfNecessary(element, parserContext, amazonRdsClientBeanName); return datasourceBuilder.getBeanDefinition(); }
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder containerBuilder = BeanDefinitionBuilder.genericBeanDefinition(SimpleMessageListenerContainer.class); if (StringUtils.hasText(element.getAttribute(TASK_EXECUTOR_ATTRIBUTE))) { containerBuilder.addPropertyReference(Conventions.attributeNameToPropertyName(TASK_EXECUTOR_ATTRIBUTE), element.getAttribute(TASK_EXECUTOR_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(MAX_NUMBER_OF_MESSAGES_ATTRIBUTE))) { containerBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(MAX_NUMBER_OF_MESSAGES_ATTRIBUTE), element.getAttribute(MAX_NUMBER_OF_MESSAGES_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(VISIBILITY_TIMEOUT_ATTRIBUTE))) { containerBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(VISIBILITY_TIMEOUT_ATTRIBUTE), element.getAttribute(VISIBILITY_TIMEOUT_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(WAIT_TIME_OUT_ATTRIBUTE))) { containerBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(WAIT_TIME_OUT_ATTRIBUTE), element.getAttribute(WAIT_TIME_OUT_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(AUTO_STARTUP_ATTRIBUTE))) { containerBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(AUTO_STARTUP_ATTRIBUTE), element.getAttribute(AUTO_STARTUP_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(DESTINATION_RESOLVER_ATTRIBUTE))) { containerBuilder.addPropertyReference(Conventions.attributeNameToPropertyName(DESTINATION_RESOLVER_ATTRIBUTE), element.getAttribute(DESTINATION_RESOLVER_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(BACK_OFF_TIME))) { containerBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(BACK_OFF_TIME), element.getAttribute(BACK_OFF_TIME)); } String amazonSqsClientBeanName = getCustomAmazonSqsClientOrDecoratedDefaultSqsClientBeanName(element, parserContext); containerBuilder.addPropertyReference(Conventions.attributeNameToPropertyName("amazon-sqs"), amazonSqsClientBeanName); containerBuilder.addPropertyReference("resourceIdResolver", GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry())); containerBuilder.addPropertyReference("messageHandler", getMessageHandlerBeanName(element, parserContext, amazonSqsClientBeanName)); return containerBuilder.getBeanDefinition(); }
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder containerBuilder = BeanDefinitionBuilder.genericBeanDefinition(SimpleMessageListenerContainer.class); if (StringUtils.hasText(element.getAttribute(TASK_EXECUTOR_ATTRIBUTE))) { containerBuilder.addPropertyReference(Conventions.attributeNameToPropertyName(TASK_EXECUTOR_ATTRIBUTE), element.getAttribute(TASK_EXECUTOR_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(MAX_NUMBER_OF_MESSAGES_ATTRIBUTE))) { containerBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(MAX_NUMBER_OF_MESSAGES_ATTRIBUTE), element.getAttribute(MAX_NUMBER_OF_MESSAGES_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(VISIBILITY_TIMEOUT_ATTRIBUTE))) { containerBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(VISIBILITY_TIMEOUT_ATTRIBUTE), element.getAttribute(VISIBILITY_TIMEOUT_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(WAIT_TIME_OUT_ATTRIBUTE))) { containerBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(WAIT_TIME_OUT_ATTRIBUTE), element.getAttribute(WAIT_TIME_OUT_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(AUTO_STARTUP_ATTRIBUTE))) { containerBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(AUTO_STARTUP_ATTRIBUTE), element.getAttribute(AUTO_STARTUP_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(DESTINATION_RESOLVER_ATTRIBUTE))) { containerBuilder.addPropertyReference(Conventions.attributeNameToPropertyName(DESTINATION_RESOLVER_ATTRIBUTE), element.getAttribute(DESTINATION_RESOLVER_ATTRIBUTE)); } if (StringUtils.hasText(element.getAttribute(BACK_OFF_TIME))) { containerBuilder.addPropertyValue(Conventions.attributeNameToPropertyName(BACK_OFF_TIME), element.getAttribute(BACK_OFF_TIME)); } String amazonSqsClientBeanName = getCustomAmazonSqsClientOrDecoratedDefaultSqsClientBeanName(element, parserContext); containerBuilder.addPropertyReference(Conventions.attributeNameToPropertyName("amazon-sqs"), amazonSqsClientBeanName); containerBuilder.addPropertyReference("resourceIdResolver", GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(parserContext.getRegistry())); containerBuilder.addPropertyReference("messageHandler", getMessageHandlerBeanName(element, parserContext, amazonSqsClientBeanName)); return containerBuilder.getBeanDefinition(); }