@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); }
private static AbstractBeanDefinition buildAutoDetectingStackNameProviderBeanDefinition(String amazonCloudFormationClientBeanName, String amazonEc2ClientBeanName) { BeanDefinitionBuilder autoDetectingStackNameProviderBeanDefinitionBuilder = genericBeanDefinition(AUTO_DETECTING_STACK_NAME_PROVIDER_CLASS_NAME); autoDetectingStackNameProviderBeanDefinitionBuilder.addConstructorArgReference(amazonCloudFormationClientBeanName); autoDetectingStackNameProviderBeanDefinitionBuilder.addConstructorArgReference(amazonEc2ClientBeanName); autoDetectingStackNameProviderBeanDefinitionBuilder.addConstructorArgValue(buildInstanceIdProviderBeanDefinition()); return autoDetectingStackNameProviderBeanDefinitionBuilder.getBeanDefinition(); }
@Override public void init() { registerBeanDefinitionParser("context-credentials", new ContextCredentialsBeanDefinitionParser()); registerBeanDefinitionParser("context-resource-loader", new ContextResourceLoaderBeanDefinitionParser()); registerBeanDefinitionParser("context-region", new ContextRegionBeanDefinitionParser()); registerBeanDefinitionParser("context-instance-data", new ContextInstanceDataPropertySourceBeanDefinitionParser()); registerBeanDefinitionParser("stack-configuration", new StackConfigurationBeanDefinitionParser()); } }
@Override public void init() { registerBeanDefinitionParser("context-credentials", new ContextCredentialsBeanDefinitionParser()); registerBeanDefinitionParser("context-resource-loader", new ContextResourceLoaderBeanDefinitionParser()); registerBeanDefinitionParser("context-region", new ContextRegionBeanDefinitionParser()); registerBeanDefinitionParser("context-instance-data", new ContextInstanceDataPropertySourceBeanDefinitionParser()); registerBeanDefinitionParser("stack-configuration", new StackConfigurationBeanDefinitionParser()); } }
@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); }
private static AbstractBeanDefinition buildAutoDetectingStackNameProviderBeanDefinition(String amazonCloudFormationClientBeanName, String amazonEc2ClientBeanName) { BeanDefinitionBuilder autoDetectingStackNameProviderBeanDefinitionBuilder = genericBeanDefinition(AUTO_DETECTING_STACK_NAME_PROVIDER_CLASS_NAME); autoDetectingStackNameProviderBeanDefinitionBuilder.addConstructorArgReference(amazonCloudFormationClientBeanName); autoDetectingStackNameProviderBeanDefinitionBuilder.addConstructorArgReference(amazonEc2ClientBeanName); autoDetectingStackNameProviderBeanDefinitionBuilder.addConstructorArgValue(buildInstanceIdProviderBeanDefinition()); return autoDetectingStackNameProviderBeanDefinitionBuilder.getBeanDefinition(); }