SmartObjectFactory renamed to ObjectProvider (extends ObjectFactory)

Issue: SPR-13943
Issue: SPR-13956
This commit is contained in:
Juergen Hoeller 2016-02-23 14:30:30 +01:00
parent 1899fb37c1
commit ed98393fb2
3 changed files with 14 additions and 14 deletions

View File

@ -25,7 +25,7 @@ import org.springframework.beans.BeansException;
* @author Juergen Hoeller * @author Juergen Hoeller
* @since 4.3 * @since 4.3
*/ */
public interface SmartObjectFactory<T> extends ObjectFactory<T> { public interface ObjectProvider<T> extends ObjectFactory<T> {
/** /**
* Return an instance (possibly shared or independent) of the object * Return an instance (possibly shared or independent) of the object

View File

@ -57,9 +57,9 @@ import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.NoUniqueBeanDefinitionException; import org.springframework.beans.factory.NoUniqueBeanDefinitionException;
import org.springframework.beans.factory.ObjectFactory; import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.SmartFactoryBean; import org.springframework.beans.factory.SmartFactoryBean;
import org.springframework.beans.factory.SmartInitializingSingleton; import org.springframework.beans.factory.SmartInitializingSingleton;
import org.springframework.beans.factory.SmartObjectFactory;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.BeanDefinitionHolder; import org.springframework.beans.factory.config.BeanDefinitionHolder;
import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@ -1005,11 +1005,11 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
return new OptionalDependencyFactory().createOptionalDependency(descriptor, beanName); return new OptionalDependencyFactory().createOptionalDependency(descriptor, beanName);
} }
else if (ObjectFactory.class == descriptor.getDependencyType() || else if (ObjectFactory.class == descriptor.getDependencyType() ||
SmartObjectFactory.class == descriptor.getDependencyType()) { ObjectProvider.class == descriptor.getDependencyType()) {
return new DependencyObjectFactory(descriptor, beanName); return new DependencyObjectProvider(descriptor, beanName);
} }
else if (javaxInjectProviderClass == descriptor.getDependencyType()) { else if (javaxInjectProviderClass == descriptor.getDependencyType()) {
return new DependencyProviderFactory().createDependencyProvider(descriptor, beanName); return new Jsr330ProviderFactory().createDependencyProvider(descriptor, beanName);
} }
else { else {
Object result = getAutowireCandidateResolver().getLazyResolutionProxyIfNecessary(descriptor, beanName); Object result = getAutowireCandidateResolver().getLazyResolutionProxyIfNecessary(descriptor, beanName);
@ -1481,9 +1481,9 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
/** /**
* Serializable ObjectFactory for lazy resolution of a dependency. * Serializable ObjectFactory/ObjectProvider for lazy resolution of a dependency.
*/ */
private class DependencyObjectFactory implements SmartObjectFactory<Object>, Serializable { private class DependencyObjectProvider implements ObjectProvider<Object>, Serializable {
private final DependencyDescriptor descriptor; private final DependencyDescriptor descriptor;
@ -1491,7 +1491,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
private final String beanName; private final String beanName;
public DependencyObjectFactory(DependencyDescriptor descriptor, String beanName) { public DependencyObjectProvider(DependencyDescriptor descriptor, String beanName) {
this.descriptor = new DependencyDescriptor(descriptor); this.descriptor = new DependencyDescriptor(descriptor);
this.descriptor.increaseNestingLevel(); this.descriptor.increaseNestingLevel();
this.optional = this.descriptor.getDependencyType().equals(javaUtilOptionalClass); this.optional = this.descriptor.getDependencyType().equals(javaUtilOptionalClass);
@ -1565,9 +1565,9 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
/** /**
* Serializable ObjectFactory for lazy resolution of a dependency. * Serializable ObjectFactory for lazy resolution of a dependency.
*/ */
private class DependencyProvider extends DependencyObjectFactory implements Provider<Object> { private class Jsr330DependencyProvider extends DependencyObjectProvider implements Provider<Object> {
public DependencyProvider(DependencyDescriptor descriptor, String beanName) { public Jsr330DependencyProvider(DependencyDescriptor descriptor, String beanName) {
super(descriptor, beanName); super(descriptor, beanName);
} }
@ -1581,10 +1581,10 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
/** /**
* Separate inner class for avoiding a hard dependency on the {@code javax.inject} API. * Separate inner class for avoiding a hard dependency on the {@code javax.inject} API.
*/ */
private class DependencyProviderFactory { private class Jsr330ProviderFactory {
public Object createDependencyProvider(DependencyDescriptor descriptor, String beanName) { public Object createDependencyProvider(DependencyDescriptor descriptor, String beanName) {
return new DependencyProvider(descriptor, beanName); return new Jsr330DependencyProvider(descriptor, beanName);
} }
} }

View File

@ -45,7 +45,7 @@ import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.NoUniqueBeanDefinitionException; import org.springframework.beans.factory.NoUniqueBeanDefinitionException;
import org.springframework.beans.factory.ObjectFactory; import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.SmartObjectFactory; import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.UnsatisfiedDependencyException; import org.springframework.beans.factory.UnsatisfiedDependencyException;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
@ -2570,7 +2570,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
public static class SmartObjectFactoryInjectionBean { public static class SmartObjectFactoryInjectionBean {
@Autowired @Autowired
private SmartObjectFactory<TestBean> testBeanFactory; private ObjectProvider<TestBean> testBeanFactory;
public TestBean getTestBean() { public TestBean getTestBean() {
return this.testBeanFactory.getObject(); return this.testBeanFactory.getObject();