Adapt to API changes in Spring Data for Apache Geode.
This commit is contained in:
@@ -23,6 +23,8 @@ import java.util.Properties;
|
||||
import org.apache.geode.cache.GemFireCache;
|
||||
import org.apache.geode.cache.client.ClientCache;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.SpringBootConfiguration;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
@@ -36,22 +38,17 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.cloud.CloudPlatform;
|
||||
import org.springframework.boot.env.EnvironmentPostProcessor;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.env.ConfigurableEnvironment;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.core.env.PropertySource;
|
||||
import org.springframework.data.gemfire.client.ClientCacheFactoryBean;
|
||||
import org.springframework.data.gemfire.config.annotation.EnableSecurity;
|
||||
import org.springframework.data.gemfire.config.annotation.support.AutoConfiguredAuthenticationInitializer;
|
||||
import org.springframework.geode.core.env.VcapPropertySource;
|
||||
import org.springframework.geode.core.env.support.CloudCacheService;
|
||||
import org.springframework.geode.core.env.support.User;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* Spring Boot {@link EnableAutoConfiguration auto-configuration} enabling Apache Geode's Security functionality,
|
||||
* and specifically Authentication between a client and server using Spring Data Geode Security annotations.
|
||||
@@ -113,11 +110,8 @@ public class ClientSecurityAutoConfiguration {
|
||||
|
||||
private static final String POOL_LOCATORS_PROPERTY = "spring.data.gemfire.pool.locators";
|
||||
|
||||
private static final String SECURITY_USERNAME_PROPERTY =
|
||||
AutoConfiguredAuthenticationInitializer.SDG_SECURITY_USERNAME_PROPERTY;
|
||||
|
||||
private static final String SECURITY_PASSWORD_PROPERTY =
|
||||
AutoConfiguredAuthenticationInitializer.SDG_SECURITY_PASSWORD_PROPERTY;
|
||||
private static final String SECURITY_USERNAME_PROPERTY = "spring.data.gemfire.security.username";
|
||||
private static final String SECURITY_PASSWORD_PROPERTY = "spring.data.gemfire.security.password";
|
||||
|
||||
private static final String SSL_USE_DEFAULT_CONTEXT_PROPERTY =
|
||||
"spring.data.gemfire.security.ssl.use-default-context";
|
||||
|
||||
@@ -47,7 +47,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.event.ContextRefreshedEvent;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.core.type.StandardMethodMetadata;
|
||||
@@ -58,8 +57,8 @@ import org.springframework.data.gemfire.ResolvableRegionFactoryBean;
|
||||
import org.springframework.data.gemfire.config.xml.GemfireConstants;
|
||||
import org.springframework.data.gemfire.util.ArrayUtils;
|
||||
import org.springframework.data.gemfire.util.CollectionUtils;
|
||||
import org.springframework.data.gemfire.util.SpringUtils;
|
||||
import org.springframework.geode.config.annotation.support.TypelessAnnotationConfigSupport;
|
||||
import org.springframework.geode.core.util.SpringExtensions;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -137,7 +136,7 @@ public class RegionTemplateAutoConfiguration extends TypelessAnnotationConfigSup
|
||||
userRegionTemplateNames.add(beanName);
|
||||
}
|
||||
else if (isBeanWithGemfireTemplateDependency(beanFactory, beanDefinition)) {
|
||||
SpringUtils.addDependsOn(beanDefinition, GemfireConstants.DEFAULT_GEMFIRE_CACHE_NAME);
|
||||
SpringExtensions.addDependsOn(beanDefinition, GemfireConstants.DEFAULT_GEMFIRE_CACHE_NAME);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -213,7 +212,7 @@ public class RegionTemplateAutoConfiguration extends TypelessAnnotationConfigSup
|
||||
|
||||
this.autoConfiguredRegionTemplateBeanNames.stream()
|
||||
.map(registry::getBeanDefinition)
|
||||
.forEach(beanDefinition -> SpringUtils.addDependsOn(beanDefinition, dependencyBeanNamesArray));
|
||||
.forEach(beanDefinition -> SpringExtensions.addDependsOn(beanDefinition, dependencyBeanNamesArray));
|
||||
}
|
||||
|
||||
// Required by @EnableClusterDefinedRegions & Native-Defined Regions (e.g. Regions defined in "cache.xml").
|
||||
|
||||
@@ -17,6 +17,9 @@ package org.springframework.geode.config.annotation;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.apache.geode.cache.Cache;
|
||||
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.event.ContextRefreshedEvent;
|
||||
@@ -46,9 +49,11 @@ public class SecurityManagerProxyConfiguration implements ApplicationListener<Co
|
||||
@Override
|
||||
public void onApplicationEvent(ContextRefreshedEvent event) {
|
||||
|
||||
ApplicationContext applicationContext = event.getApplicationContext();
|
||||
|
||||
SecurityManagerProxy securityManagerProxy = SecurityManagerProxy.getInstance();
|
||||
|
||||
securityManagerProxy.setBeanFactory(event.getApplicationContext().getAutowireCapableBeanFactory());
|
||||
securityManagerProxy.init(new Properties());
|
||||
securityManagerProxy.setBeanFactory(applicationContext.getAutowireCapableBeanFactory());
|
||||
securityManagerProxy.initialize(applicationContext.getBean(Cache.class), new Properties());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||
@@ -38,15 +40,12 @@ import org.springframework.context.annotation.ScopeMetadataResolver;
|
||||
import org.springframework.context.support.AbstractRefreshableConfigApplicationContext;
|
||||
import org.springframework.data.gemfire.config.annotation.PeerCacheApplication;
|
||||
import org.springframework.data.gemfire.util.ArrayUtils;
|
||||
import org.springframework.data.gemfire.util.SpringUtils;
|
||||
import org.springframework.geode.core.util.SpringExtensions;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* A {@literal refreshable} {@link ApplicationContext} capable of loading {@link Class component classes} used for
|
||||
* {@link Annotation} based configuration in addition to scanning {@link String configuration locations}, and then
|
||||
@@ -314,7 +313,7 @@ public class RefreshableAnnotationConfigApplicationContext extends AbstractRefre
|
||||
*/
|
||||
@Override
|
||||
protected void prepareRefresh() {
|
||||
this.beanFactory = (DefaultListableBeanFactory) SpringUtils.safeGetValue(this::getBeanFactory);
|
||||
this.beanFactory = (DefaultListableBeanFactory) SpringExtensions.safeGetValue(this::getBeanFactory);
|
||||
super.prepareRefresh();
|
||||
}
|
||||
|
||||
|
||||
@@ -34,10 +34,11 @@ import org.springframework.util.StringUtils;
|
||||
* @see org.springframework.beans.factory.config.BeanDefinition
|
||||
* @see org.springframework.beans.factory.support.BeanDefinitionRegistry
|
||||
* @see org.springframework.context.ApplicationContext
|
||||
* @see org.springframework.data.gemfire.util.SpringExtensions
|
||||
* @since 1.6.0
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
public abstract class SpringExtensions {
|
||||
public abstract class SpringExtensions extends org.springframework.data.gemfire.util.SpringExtensions {
|
||||
|
||||
public static final String BEAN_DEFINITION_METADATA_JSON = "{\n"
|
||||
+ "\t'beanName': '%1$s',%n"
|
||||
|
||||
@@ -171,6 +171,11 @@ public class SecurityManagerProxy extends LazyWiringDeclarableSupport
|
||||
INSTANCE.set(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(Properties props) {
|
||||
super.init(props);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BeanFactory locateBeanFactory() {
|
||||
return this.beanFactory != null ? this.beanFactory : super.locateBeanFactory();
|
||||
|
||||
Reference in New Issue
Block a user