@@ -1052,7 +1052,7 @@ else if (ObjectFactory.class == descriptor.getDependencyType() ||
1052
1052
return new DependencyObjectProvider (descriptor , requestingBeanName );
1053
1053
}
1054
1054
else if (javaxInjectProviderClass == descriptor .getDependencyType ()) {
1055
- return new Jsr330ProviderFactory ().createDependencyProvider (descriptor , requestingBeanName );
1055
+ return new Jsr330Factory ().createDependencyProvider (descriptor , requestingBeanName );
1056
1056
}
1057
1057
else {
1058
1058
Object result = getAutowireCandidateResolver ().getLazyResolutionProxyIfNecessary (
@@ -1247,7 +1247,7 @@ private Comparator<Object> adaptDependencyComparator(Map<String, Object> matchin
1247
1247
}
1248
1248
}
1249
1249
1250
- private FactoryAwareOrderSourceProvider createFactoryAwareOrderSourceProvider (Map <String , Object > beans ) {
1250
+ private OrderComparator . OrderSourceProvider createFactoryAwareOrderSourceProvider (Map <String , Object > beans ) {
1251
1251
IdentityHashMap <Object , String > instancesToBeanNames = new IdentityHashMap <>();
1252
1252
beans .forEach ((beanName , instance ) -> instancesToBeanNames .put (instance , beanName ));
1253
1253
return new FactoryAwareOrderSourceProvider (instancesToBeanNames );
@@ -1614,6 +1614,29 @@ private Object readResolve() {
1614
1614
}
1615
1615
1616
1616
1617
+ /**
1618
+ * A dependency descriptor marker for nested elements.
1619
+ */
1620
+ private static class NestedDependencyDescriptor extends DependencyDescriptor {
1621
+
1622
+ public NestedDependencyDescriptor (DependencyDescriptor original ) {
1623
+ super (original );
1624
+ increaseNestingLevel ();
1625
+ }
1626
+ }
1627
+
1628
+
1629
+ /**
1630
+ * A dependency descriptor marker for multiple elements.
1631
+ */
1632
+ private static class MultiElementDescriptor extends NestedDependencyDescriptor {
1633
+
1634
+ public MultiElementDescriptor (DependencyDescriptor original ) {
1635
+ super (original );
1636
+ }
1637
+ }
1638
+
1639
+
1617
1640
/**
1618
1641
* Serializable ObjectFactory/ObjectProvider for lazy resolution of a dependency.
1619
1642
*/
@@ -1718,29 +1741,27 @@ protected Object getValue() throws BeansException {
1718
1741
1719
1742
1720
1743
/**
1721
- * Serializable ObjectFactory for lazy resolution of a dependency.
1744
+ * Separate inner class for avoiding a hard dependency on the {@code javax.inject} API.
1745
+ * Actual {@code javax.inject.Provider} implementation is nested here in order to make it
1746
+ * invisible for Graal's introspection of DefaultListableBeanFactory's nested classes.
1722
1747
*/
1723
- private class Jsr330DependencyProvider extends DependencyObjectProvider implements Provider <Object > {
1724
-
1725
- public Jsr330DependencyProvider (DependencyDescriptor descriptor , @ Nullable String beanName ) {
1726
- super (descriptor , beanName );
1727
- }
1748
+ private class Jsr330Factory implements Serializable {
1728
1749
1729
- @ Override
1730
- @ Nullable
1731
- public Object get () throws BeansException {
1732
- return getValue ();
1750
+ public Object createDependencyProvider (DependencyDescriptor descriptor , @ Nullable String beanName ) {
1751
+ return new Jsr330Provider (descriptor , beanName );
1733
1752
}
1734
- }
1735
1753
1754
+ private class Jsr330Provider extends DependencyObjectProvider implements Provider <Object > {
1736
1755
1737
- /**
1738
- * Separate inner class for avoiding a hard dependency on the {@code javax.inject} API.
1739
- */
1740
- private class Jsr330ProviderFactory {
1756
+ public Jsr330Provider (DependencyDescriptor descriptor , @ Nullable String beanName ) {
1757
+ super (descriptor , beanName );
1758
+ }
1741
1759
1742
- public Object createDependencyProvider (DependencyDescriptor descriptor , @ Nullable String beanName ) {
1743
- return new Jsr330DependencyProvider (descriptor , beanName );
1760
+ @ Override
1761
+ @ Nullable
1762
+ public Object get () throws BeansException {
1763
+ return getValue ();
1764
+ }
1744
1765
}
1745
1766
}
1746
1767
@@ -1791,21 +1812,4 @@ private RootBeanDefinition getRootBeanDefinition(@Nullable String beanName) {
1791
1812
}
1792
1813
}
1793
1814
1794
-
1795
- private static class NestedDependencyDescriptor extends DependencyDescriptor {
1796
-
1797
- public NestedDependencyDescriptor (DependencyDescriptor original ) {
1798
- super (original );
1799
- increaseNestingLevel ();
1800
- }
1801
- }
1802
-
1803
-
1804
- private static class MultiElementDescriptor extends NestedDependencyDescriptor {
1805
-
1806
- public MultiElementDescriptor (DependencyDescriptor original ) {
1807
- super (original );
1808
- }
1809
- }
1810
-
1811
1815
}
0 commit comments