@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(registry); } }
static void registerResourceIdResolverBeanIfNeeded(BeanDefinitionRegistry registry) { if (!(registry.containsBeanDefinition(RESOURCE_ID_RESOLVER_BEAN_NAME))) { registry.registerBeanDefinition(RESOURCE_ID_RESOLVER_BEAN_NAME, buildResourceIdResolverBeanDefinition()); } }
/** * Returns the name of the resource id resolver bean. This method is provided as utility method for bean definition * parsers that create bean definitions with a dependency to the global resource id resolver bean. If the resource * id resolver bean of type {@link ResourceIdResolver} has not yet been registered with the provided bean definition * registry, it is automatically registered. * * @param registry * the bean definition registry to check for an existing resource id resolver bean definition, and to register the * resource id resolver bean definition with, if needed * @return the bean name of the resource id resolver bean */ @SuppressWarnings("SameReturnValue") public static String retrieveResourceIdResolverBeanName(BeanDefinitionRegistry registry) { registerResourceIdResolverBeanIfNeeded(registry); return RESOURCE_ID_RESOLVER_BEAN_NAME; }
@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { GlobalBeanDefinitionUtils.retrieveResourceIdResolverBeanName(registry); } }
/** * Returns the name of the resource id resolver bean. This method is provided as utility method for bean definition * parsers that create bean definitions with a dependency to the global resource id resolver bean. If the resource * id resolver bean of type {@link ResourceIdResolver} has not yet been registered with the provided bean definition * registry, it is automatically registered. * * @param registry * the bean definition registry to check for an existing resource id resolver bean definition, and to register the * resource id resolver bean definition with, if needed * @return the bean name of the resource id resolver bean */ @SuppressWarnings("SameReturnValue") public static String retrieveResourceIdResolverBeanName(BeanDefinitionRegistry registry) { registerResourceIdResolverBeanIfNeeded(registry); return RESOURCE_ID_RESOLVER_BEAN_NAME; }
static void registerResourceIdResolverBeanIfNeeded(BeanDefinitionRegistry registry) { if (!(registry.containsBeanDefinition(RESOURCE_ID_RESOLVER_BEAN_NAME))) { registry.registerBeanDefinition(RESOURCE_ID_RESOLVER_BEAN_NAME, buildResourceIdResolverBeanDefinition()); } }
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) { registerResourceIdResolverBeanIfNeeded(parserContext.getRegistry()); String amazonCloudFormationClientBeanName = getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-cloud-formation", CLOUD_FORMATION_CLIENT_CLASS_NAME); String amazonEc2ClientBeanName = getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-ec2", EC2_CLIENT_CLASS_NAME); String stackName = element.getAttribute(STACK_NAME_ATTRIBUTE_NAME); builder.addConstructorArgReference(amazonCloudFormationClientBeanName); AbstractBeanDefinition stackNameProviderBeanDefinition = StringUtils.isEmpty(stackName) ? buildAutoDetectingStackNameProviderBeanDefinition(amazonCloudFormationClientBeanName, amazonEc2ClientBeanName) : buildStaticStackNameProviderBeanDefinition(stackName); builder.addConstructorArgValue(stackNameProviderBeanDefinition); buildAndRegisterStackUserTagsIfNeeded(element, parserContext, amazonCloudFormationClientBeanName, stackNameProviderBeanDefinition); }
@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) { registerResourceIdResolverBeanIfNeeded(parserContext.getRegistry()); String amazonCloudFormationClientBeanName = getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-cloud-formation", CLOUD_FORMATION_CLIENT_CLASS_NAME); String amazonEc2ClientBeanName = getCustomClientOrDefaultClientBeanName(element, parserContext, "amazon-ec2", EC2_CLIENT_CLASS_NAME); String stackName = element.getAttribute(STACK_NAME_ATTRIBUTE_NAME); builder.addConstructorArgReference(amazonCloudFormationClientBeanName); AbstractBeanDefinition stackNameProviderBeanDefinition = StringUtils.isEmpty(stackName) ? buildAutoDetectingStackNameProviderBeanDefinition(amazonCloudFormationClientBeanName, amazonEc2ClientBeanName) : buildStaticStackNameProviderBeanDefinition(stackName); builder.addConstructorArgValue(stackNameProviderBeanDefinition); buildAndRegisterStackUserTagsIfNeeded(element, parserContext, amazonCloudFormationClientBeanName, stackNameProviderBeanDefinition); }
@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 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 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 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())); }
@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)); } }
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(); }
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()); }