17
17
package org .springframework .beans .factory ;
18
18
19
19
import java .io .Closeable ;
20
+ import java .io .Serializable ;
20
21
import java .lang .reflect .Field ;
21
22
import java .net .MalformedURLException ;
22
23
import java .security .AccessControlContext ;
32
33
import java .util .Map ;
33
34
import java .util .Properties ;
34
35
import java .util .Set ;
36
+ import java .util .concurrent .Callable ;
35
37
import javax .annotation .Priority ;
36
38
import javax .security .auth .Subject ;
37
39
@@ -1669,13 +1671,21 @@ public void testGetTypeForAbstractFactoryBean() {
1669
1671
@ Test
1670
1672
public void testGetBeanNamesForTypeBeforeFactoryBeanCreation () {
1671
1673
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ();
1672
- lbf .registerBeanDefinition ("factoryBean" , new RootBeanDefinition (FactoryBeanThatShouldntBeCalled .class . getName () ));
1674
+ lbf .registerBeanDefinition ("factoryBean" , new RootBeanDefinition (FactoryBeanThatShouldntBeCalled .class ));
1673
1675
assertFalse (lbf .containsSingleton ("factoryBean" ));
1674
1676
1675
1677
String [] beanNames = lbf .getBeanNamesForType (Runnable .class , false , false );
1676
1678
assertEquals (1 , beanNames .length );
1677
1679
assertEquals ("&factoryBean" , beanNames [0 ]);
1678
1680
1681
+ beanNames = lbf .getBeanNamesForType (Callable .class , false , false );
1682
+ assertEquals (1 , beanNames .length );
1683
+ assertEquals ("&factoryBean" , beanNames [0 ]);
1684
+
1685
+ beanNames = lbf .getBeanNamesForType (RepositoryFactoryInformation .class , false , false );
1686
+ assertEquals (1 , beanNames .length );
1687
+ assertEquals ("&factoryBean" , beanNames [0 ]);
1688
+
1679
1689
beanNames = lbf .getBeanNamesForType (FactoryBean .class , false , false );
1680
1690
assertEquals (1 , beanNames .length );
1681
1691
assertEquals ("&factoryBean" , beanNames [0 ]);
@@ -1684,13 +1694,21 @@ public void testGetBeanNamesForTypeBeforeFactoryBeanCreation() {
1684
1694
@ Test
1685
1695
public void testGetBeanNamesForTypeAfterFactoryBeanCreation () {
1686
1696
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ();
1687
- lbf .registerBeanDefinition ("factoryBean" , new RootBeanDefinition (FactoryBeanThatShouldntBeCalled .class . getName () ));
1697
+ lbf .registerBeanDefinition ("factoryBean" , new RootBeanDefinition (FactoryBeanThatShouldntBeCalled .class ));
1688
1698
lbf .getBean ("&factoryBean" );
1689
1699
1690
1700
String [] beanNames = lbf .getBeanNamesForType (Runnable .class , false , false );
1691
1701
assertEquals (1 , beanNames .length );
1692
1702
assertEquals ("&factoryBean" , beanNames [0 ]);
1693
1703
1704
+ beanNames = lbf .getBeanNamesForType (Callable .class , false , false );
1705
+ assertEquals (1 , beanNames .length );
1706
+ assertEquals ("&factoryBean" , beanNames [0 ]);
1707
+
1708
+ beanNames = lbf .getBeanNamesForType (RepositoryFactoryInformation .class , false , false );
1709
+ assertEquals (1 , beanNames .length );
1710
+ assertEquals ("&factoryBean" , beanNames [0 ]);
1711
+
1694
1712
beanNames = lbf .getBeanNamesForType (FactoryBean .class , false , false );
1695
1713
assertEquals (1 , beanNames .length );
1696
1714
assertEquals ("&factoryBean" , beanNames [0 ]);
@@ -2892,10 +2910,24 @@ public Object createGeneric() {
2892
2910
}
2893
2911
2894
2912
2895
- public static class FactoryBeanThatShouldntBeCalled implements FactoryBean <Object >, Runnable {
2913
+ public interface Repository <T , ID extends Serializable > {
2914
+ }
2915
+
2916
+
2917
+ public interface RepositoryFactoryInformation <T , ID extends Serializable > {
2918
+ }
2919
+
2920
+
2921
+ public static abstract class RepositoryFactoryBeanSupport <T extends Repository <S , ID >, S , ID extends Serializable >
2922
+ implements RepositoryFactoryInformation <S , ID >, FactoryBean <T > {
2923
+ }
2924
+
2925
+
2926
+ public static class FactoryBeanThatShouldntBeCalled <T extends Repository <S , ID >, S , ID extends Serializable >
2927
+ extends RepositoryFactoryBeanSupport <T , S , ID > implements Runnable , Callable <T > {
2896
2928
2897
2929
@ Override
2898
- public Object getObject () {
2930
+ public T getObject () {
2899
2931
throw new IllegalStateException ();
2900
2932
}
2901
2933
@@ -2913,6 +2945,11 @@ public boolean isSingleton() {
2913
2945
public void run () {
2914
2946
throw new IllegalStateException ();
2915
2947
}
2948
+
2949
+ @ Override
2950
+ public T call () throws Exception {
2951
+ throw new IllegalStateException ();
2952
+ }
2916
2953
}
2917
2954
2918
2955
0 commit comments