From 634dc2aadbe7e7611580d57b03ae8e49080146c9 Mon Sep 17 00:00:00 2001 From: John Blum Date: Fri, 9 Sep 2016 13:38:24 -0700 Subject: [PATCH] SGF-515 - Allow additional bean definitions to be registered with the factory. Add additional convenience/utility methods to generate bean names. --- .../EmbeddedServiceConfigurationSupport.java | 41 ++++++++++++++----- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/springframework/data/gemfire/config/annotation/support/EmbeddedServiceConfigurationSupport.java b/src/main/java/org/springframework/data/gemfire/config/annotation/support/EmbeddedServiceConfigurationSupport.java index 97ccf905..a02744f6 100644 --- a/src/main/java/org/springframework/data/gemfire/config/annotation/support/EmbeddedServiceConfigurationSupport.java +++ b/src/main/java/org/springframework/data/gemfire/config/annotation/support/EmbeddedServiceConfigurationSupport.java @@ -72,19 +72,30 @@ public abstract class EmbeddedServiceConfigurationSupport implements ImportBeanD /* (non-Javadoc) */ @Override - public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { + public final void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { if (isAnnotationPresent(importingClassMetadata)) { Map annotationAttributes = getAnnotationAttributes(importingClassMetadata); + registerBeanDefinitions(importingClassMetadata, annotationAttributes, registry); + setGemFireProperties(registry, annotationAttributes); + } + } - Properties customGemFireProperties = toGemFireProperties(annotationAttributes); + /* (non-Javadoc) */ + @SuppressWarnings("unused") + protected void registerBeanDefinitions(AnnotationMetadata importingClassMetaData, + Map annotationAttributes, BeanDefinitionRegistry registry) { + } - if (hasProperties(customGemFireProperties)) { - try { - cacheConfiguration().add(customGemFireProperties); - } - catch (Exception ignore) { - registerGemFirePropertiesBeanPostProcessor(registry, customGemFireProperties); - } + /* (non-Javadoc) */ + protected void setGemFireProperties(BeanDefinitionRegistry registry, Map annotationAttributes) { + Properties gemfireProperties = toGemFireProperties(annotationAttributes); + + if (hasProperties(gemfireProperties)) { + try { + cacheConfiguration().add(gemfireProperties); + } + catch (Exception ignore) { + registerGemFirePropertiesBeanPostProcessor(registry, gemfireProperties); } } } @@ -126,7 +137,17 @@ public abstract class EmbeddedServiceConfigurationSupport implements ImportBeanD /* (non-Javadoc) */ protected String generateBeanName() { - return String.format("%1$s.%2$s", getClass().getName(), getAnnotationTypeSimpleName()); + return generateBeanName(getAnnotationTypeSimpleName()); + } + + /* (non-Javadoc) */ + protected String generateBeanName(Class typeQualifier) { + return generateBeanName(typeQualifier.getSimpleName()); + } + + /* (non-Javadoc) */ + protected String generateBeanName(String nameQualifier) { + return String.format("%1$s.%2$s", getClass().getName(), nameQualifier); } /* (non-Javadoc) */