@ -1052,7 +1052,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
@@ -1052,7 +1052,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
return new DependencyObjectProvider ( descriptor , requestingBeanName ) ;
}
else if ( javaxInjectProviderClass = = descriptor . getDependencyType ( ) ) {
return new Jsr330Provider Factory ( ) . createDependencyProvider ( descriptor , requestingBeanName ) ;
return new Jsr330Factory ( ) . createDependencyProvider ( descriptor , requestingBeanName ) ;
}
else {
Object result = getAutowireCandidateResolver ( ) . getLazyResolutionProxyIfNecessary (
@ -1247,7 +1247,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
@@ -1247,7 +1247,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
}
}
private FactoryAware OrderSourceProvider createFactoryAwareOrderSourceProvider ( Map < String , Object > beans ) {
private OrderComparator . OrderSourceProvider createFactoryAwareOrderSourceProvider ( Map < String , Object > beans ) {
IdentityHashMap < Object , String > instancesToBeanNames = new IdentityHashMap < > ( ) ;
beans . forEach ( ( beanName , instance ) - > instancesToBeanNames . put ( instance , beanName ) ) ;
return new FactoryAwareOrderSourceProvider ( instancesToBeanNames ) ;
@ -1614,6 +1614,29 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
@@ -1614,6 +1614,29 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
}
/ * *
* A dependency descriptor marker for nested elements .
* /
private static class NestedDependencyDescriptor extends DependencyDescriptor {
public NestedDependencyDescriptor ( DependencyDescriptor original ) {
super ( original ) ;
increaseNestingLevel ( ) ;
}
}
/ * *
* A dependency descriptor marker for multiple elements .
* /
private static class MultiElementDescriptor extends NestedDependencyDescriptor {
public MultiElementDescriptor ( DependencyDescriptor original ) {
super ( original ) ;
}
}
/ * *
* Serializable ObjectFactory / ObjectProvider for lazy resolution of a dependency .
* /
@ -1718,29 +1741,27 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
@@ -1718,29 +1741,27 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
/ * *
* Serializable ObjectFactory for lazy resolution of a dependency .
* Separate inner class for avoiding a hard dependency on the { @code javax . inject } API .
* Actual { @code javax . inject . Provider } implementation is nested here in order to make it
* invisible for Graal ' s introspection of DefaultListableBeanFactory ' s nested classes .
* /
private class Jsr330DependencyProvider extends DependencyObjectProvider implements Provider < Object > {
public Jsr330DependencyProvider ( DependencyDescriptor descriptor , @Nullable String beanName ) {
super ( descriptor , beanName ) ;
}
private class Jsr330Factory implements Serializable {
@Override
@Nullable
public Object get ( ) throws BeansException {
return getValue ( ) ;
public Object createDependencyProvider ( DependencyDescriptor descriptor , @Nullable String beanName ) {
return new Jsr330Provider ( descriptor , beanName ) ;
}
}
private class Jsr330Provider extends DependencyObjectProvider implements Provider < Object > {
/ * *
* Separate inner class for avoiding a hard dependency on the { @code javax . inject } API .
* /
private class Jsr330ProviderFactory {
public Jsr330Provider ( DependencyDescriptor descriptor , @Nullable String beanName ) {
super ( descriptor , beanName ) ;
}
public Object createDependencyProvider ( DependencyDescriptor descriptor , @Nullable String beanName ) {
return new Jsr330DependencyProvider ( descriptor , beanName ) ;
@Override
@Nullable
public Object get ( ) throws BeansException {
return getValue ( ) ;
}
}
}
@ -1791,21 +1812,4 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
@@ -1791,21 +1812,4 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
}
}
private static class NestedDependencyDescriptor extends DependencyDescriptor {
public NestedDependencyDescriptor ( DependencyDescriptor original ) {
super ( original ) ;
increaseNestingLevel ( ) ;
}
}
private static class MultiElementDescriptor extends NestedDependencyDescriptor {
public MultiElementDescriptor ( DependencyDescriptor original ) {
super ( original ) ;
}
}
}