Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.beans.testfixture.beans.ITestBean;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.core.io.Resource;

import static org.assertj.core.api.Assertions.assertThat;
Expand Down Expand Up @@ -68,17 +69,16 @@ void customLazyInitSingletonTargetSource() {
}

@Test
@SuppressWarnings("unchecked")
void lazyInitFactoryBeanTargetSource() {
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(FACTORY_BEAN_CONTEXT);
bf.preInstantiateSingletons();

Set<Object> set1 = (Set<Object>) bf.getBean("proxy1");
Set<Object> set1 = bf.getBean("proxy1", new ParameterizedTypeReference<>() {});
assertThat(bf.containsSingleton("target1")).isFalse();
assertThat(set1).contains("10");
assertThat(bf.containsSingleton("target1")).isTrue();

Set<Object> set2 = (Set<Object>) bf.getBean("proxy2");
Set<Object> set2 = bf.getBean("proxy2", new ParameterizedTypeReference<>() {});
assertThat(bf.containsSingleton("target2")).isFalse();
assertThat(set2).contains("20");
assertThat(bf.containsSingleton("target2")).isTrue();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.core.ParameterizedTypeReference;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assumptions.assumeThat;
Expand All @@ -47,7 +48,7 @@ void serviceLoaderFactoryBean() {
RootBeanDefinition bd = new RootBeanDefinition(ServiceLoaderFactoryBean.class);
bd.getPropertyValues().add("serviceType", DocumentBuilderFactory.class.getName());
bf.registerBeanDefinition("service", bd);
ServiceLoader<?> serviceLoader = (ServiceLoader<?>) bf.getBean("service");
ServiceLoader<?> serviceLoader = bf.getBean("service", new ParameterizedTypeReference<>() {});
assertThat(serviceLoader).element(0).isInstanceOf(DocumentBuilderFactory.class);
}

Expand All @@ -66,7 +67,7 @@ void serviceListFactoryBean() {
RootBeanDefinition bd = new RootBeanDefinition(ServiceListFactoryBean.class);
bd.getPropertyValues().add("serviceType", DocumentBuilderFactory.class.getName());
bf.registerBeanDefinition("service", bd);
List<?> serviceList = (List<?>) bf.getBean("service");
List<?> serviceList = bf.getBean("service", new ParameterizedTypeReference<>() {});
assertThat(serviceList).element(0).isInstanceOf(DocumentBuilderFactory.class);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ void genericSetProperty() {
bd.getPropertyValues().add("integerSet", Set.of("4", "5"));
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5);
}

Expand All @@ -85,7 +85,7 @@ void genericListProperty() throws Exception {
bd.getPropertyValues().add("resourceList", input);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getResourceList())
.containsExactly(new UrlResource("http://localhost:8080"), new UrlResource("http://localhost:9090"));
}
Expand Down Expand Up @@ -128,7 +128,7 @@ void genericListPropertyWithOptionalAutowiring() {
bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_BY_TYPE);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getResourceList()).isNull();
}

Expand All @@ -143,7 +143,7 @@ void genericMapProperty() {
bd.getPropertyValues().add("shortMap", input);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5);
assertThat(gb.getShortMap().get(Short.valueOf("6"))).isEqualTo(7);
}
Expand All @@ -154,7 +154,7 @@ void genericListOfArraysProperty() {
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(
new ClassPathResource("genericBeanTests.xml", getClass()));

GenericBean<?> gb = (GenericBean<?>) bf.getBean("listOfArrays");
GenericBean<?> gb = bf.getBean("listOfArrays", new ParameterizedTypeReference<>() {});
assertThat(gb.getListOfArrays()).containsExactly(new String[] {"value1", "value2"});
}

Expand All @@ -167,7 +167,7 @@ void genericSetConstructor() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5);
}

Expand All @@ -181,7 +181,7 @@ void genericSetConstructorWithAutowiring() {
bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5);
}

Expand All @@ -193,7 +193,7 @@ void genericSetConstructorWithOptionalAutowiring() {
bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).isNull();
}

Expand All @@ -208,7 +208,7 @@ void genericSetListConstructor() throws Exception {
bd.getConstructorArgumentValues().addGenericArgumentValue(input2);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5);
assertThat(gb.getResourceList())
.containsExactly(new UrlResource("http://localhost:8080"), new UrlResource("http://localhost:9090"));
Expand All @@ -226,7 +226,7 @@ void genericSetListConstructorWithAutowiring() throws Exception {
bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5);
assertThat(gb.getResourceList())
.containsExactly(new UrlResource("http://localhost:8080"), new UrlResource("http://localhost:9090"));
Expand All @@ -242,7 +242,7 @@ void genericSetListConstructorWithOptionalAutowiring() throws Exception {
bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).isNull();
assertThat(gb.getResourceList()).isNull();
}
Expand All @@ -260,7 +260,7 @@ void genericSetMapConstructor() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input2);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5);
assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5);
assertThat(gb.getShortMap().get(Short.valueOf("6"))).isEqualTo(7);
Expand All @@ -278,7 +278,7 @@ void genericMapResourceConstructor() throws Exception {
bd.getConstructorArgumentValues().addGenericArgumentValue("http://localhost:8080");
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5);
assertThat(gb.getShortMap().get(Short.valueOf("6"))).isEqualTo(7);
assertThat(gb.getResourceList()).containsExactly(new UrlResource("http://localhost:8080"));
Expand All @@ -299,7 +299,7 @@ void genericMapMapConstructor() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input2);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getShortMap()).isNotSameAs(gb.getPlainMap());
assertThat(gb.getPlainMap()).hasSize(2);
assertThat(gb.getPlainMap().get("1")).isEqualTo("0");
Expand All @@ -321,7 +321,7 @@ void genericMapMapConstructorWithSameRefAndConversion() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getShortMap()).isNotSameAs(gb.getPlainMap());
assertThat(gb.getPlainMap()).hasSize(2);
assertThat(gb.getPlainMap().get("1")).isEqualTo("0");
Expand All @@ -343,7 +343,7 @@ void genericMapMapConstructorWithSameRefAndNoConversion() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getShortMap()).isSameAs(gb.getPlainMap());
assertThat(gb.getShortMap()).hasSize(2);
assertThat(gb.getShortMap().get(Short.valueOf("1"))).isEqualTo(0);
Expand All @@ -361,7 +361,7 @@ void genericMapWithKeyTypeConstructor() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getLongMap().get(4L)).isEqualTo("5");
assertThat(gb.getLongMap().get(6L)).isEqualTo("7");
}
Expand All @@ -380,7 +380,7 @@ void genericMapWithCollectionValueConstructor() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getCollectionMap().get(1)).isInstanceOf(Set.class);
assertThat(gb.getCollectionMap().get(2)).isInstanceOf(List.class);
}
Expand All @@ -395,7 +395,7 @@ void genericSetFactoryMethod() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5);
}

Expand All @@ -411,7 +411,7 @@ void genericSetListFactoryMethod() throws Exception {
bd.getConstructorArgumentValues().addGenericArgumentValue(input2);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5);
assertThat(gb.getResourceList())
.containsExactly(new UrlResource("http://localhost:8080"), new UrlResource("http://localhost:9090"));
Expand All @@ -431,7 +431,7 @@ void genericSetMapFactoryMethod() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input2);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5);
assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5);
assertThat(gb.getShortMap().get(Short.valueOf("6"))).isEqualTo(7);
Expand All @@ -450,7 +450,7 @@ void genericMapResourceFactoryMethod() throws Exception {
bd.getConstructorArgumentValues().addGenericArgumentValue("http://localhost:8080");
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5);
assertThat(gb.getShortMap().get(Short.valueOf("6"))).isEqualTo(7);
assertThat(gb.getResourceList()).containsExactly(new UrlResource("http://localhost:8080"));
Expand All @@ -472,7 +472,7 @@ void genericMapMapFactoryMethod() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input2);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getPlainMap().get("1")).isEqualTo("0");
assertThat(gb.getPlainMap().get("2")).isEqualTo("3");
assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5);
Expand All @@ -491,7 +491,7 @@ void genericMapWithKeyTypeFactoryMethod() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getLongMap().get(Long.valueOf("4"))).isEqualTo("5");
assertThat(gb.getLongMap().get(Long.valueOf("6"))).isEqualTo("7");
}
Expand All @@ -511,7 +511,7 @@ void genericMapWithCollectionValueFactoryMethod() {
bd.getConstructorArgumentValues().addGenericArgumentValue(input);
bf.registerBeanDefinition("genericBean", bd);

GenericBean<?> gb = (GenericBean<?>) bf.getBean("genericBean");
GenericBean<?> gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {});
assertThat(gb.getCollectionMap().get(1)).isInstanceOf(Set.class);
assertThat(gb.getCollectionMap().get(2)).isInstanceOf(List.class);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.testfixture.beans.FactoryMethods;
import org.springframework.beans.testfixture.beans.TestBean;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.core.io.ClassPathResource;

import static org.assertj.core.api.Assertions.assertThat;
Expand Down Expand Up @@ -347,7 +348,7 @@ void factoryMethodWithDifferentReturnType() {
assertThat(Arrays.asList(names)).doesNotContain("listInstance");
names = xbf.getBeanNamesForType(List.class);
assertThat(Arrays.asList(names)).contains("listInstance");
List<?> list = (List<?>) xbf.getBean("listInstance");
List<?> list = xbf.getBean("listInstance", new ParameterizedTypeReference<>() {});
assertThat(list).isEqualTo(Collections.EMPTY_LIST);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.testfixture.beans.ITestBean;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.ParameterizedTypeReference;

import static org.assertj.core.api.Assertions.assertThat;

Expand Down Expand Up @@ -60,8 +61,8 @@ void setup() {
testBean1 = (ITestBean) ctx.getBean("testBean1");
testBean2 = (ITestBean) ctx.getBean("testBean2");
testBeanContainingNestedBean = (ITestBean) ctx.getBean("testBeanContainingNestedBean");
testFactoryBean1 = (Map<?, ?>) ctx.getBean("testFactoryBean1");
testFactoryBean2 = (Map<?, ?>) ctx.getBean("testFactoryBean2");
testFactoryBean1 = ctx.getBean("testFactoryBean1", new ParameterizedTypeReference<>() {});
testFactoryBean2 = ctx.getBean("testFactoryBean2", new ParameterizedTypeReference<>() {});
counterAspect = (Counter) ctx.getBean("counterAspect");
interceptThis = (ITestBean) ctx.getBean("interceptThis");
dontInterceptThis = (ITestBean) ctx.getBean("dontInterceptThis");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
import org.springframework.beans.testfixture.beans.TestBean;
import org.springframework.context.ApplicationListener;
import org.springframework.context.testfixture.beans.TestApplicationListener;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.testfixture.TimeStamped;
import org.springframework.core.testfixture.io.SerializationTestUtils;
Expand Down Expand Up @@ -512,7 +513,7 @@ void globalsCanAddAspectInterfaces() {
// 2 globals + 2 explicit
assertThat(pfb.getAdvisors()).as("Have 2 globals and 2 explicit advisors").hasSize(3);

ApplicationListener<?> l = (ApplicationListener<?>) factory.getBean("validGlobals");
ApplicationListener<?> l = factory.getBean("validGlobals", new ParameterizedTypeReference<>() {});
agi = (AddedGlobalInterface) l;
assertThat(agi.globalsAdded()).isEqualTo(-1);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@

import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.core.io.ClassPathResource;
import org.springframework.jdbc.Customer;
import org.springframework.jdbc.datasource.TestDataSourceWrapper;
Expand Down Expand Up @@ -72,19 +73,19 @@ void setUp() throws Exception {

@Test
void customerQueryWithPlaceholders() throws SQLException {
SqlQuery<?> query = (SqlQuery<?>) beanFactory.getBean("queryWithPlaceholders");
SqlQuery<?> query = beanFactory.getBean("queryWithPlaceholders", new ParameterizedTypeReference<>() {});
doTestCustomerQuery(query, false);
}

@Test
void customerQueryWithNamedParameters() throws SQLException {
SqlQuery<?> query = (SqlQuery<?>) beanFactory.getBean("queryWithNamedParameters");
SqlQuery<?> query = beanFactory.getBean("queryWithNamedParameters", new ParameterizedTypeReference<>() {});
doTestCustomerQuery(query, true);
}

@Test
void customerQueryWithRowMapperInstance() throws SQLException {
SqlQuery<?> query = (SqlQuery<?>) beanFactory.getBean("queryWithRowMapperBean");
SqlQuery<?> query = beanFactory.getBean("queryWithRowMapperBean", new ParameterizedTypeReference<>() {});
doTestCustomerQuery(query, true);
}

Expand Down