Search in sources :

Example 11 with AssignableTypeFilter

use of org.springframework.core.type.filter.AssignableTypeFilter in project spring-framework by spring-projects.

the class AssignableTypeFilterTests method superClassMatch.

@Test
public void superClassMatch() throws Exception {
    MetadataReaderFactory metadataReaderFactory = new SimpleMetadataReaderFactory();
    String classUnderTest = "org.springframework.core.type.AssignableTypeFilterTests$SomeDaoLikeImpl";
    MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(classUnderTest);
    AssignableTypeFilter filter = new AssignableTypeFilter(SimpleJdbcDaoSupport.class);
    assertTrue(filter.match(metadataReader, metadataReaderFactory));
    ClassloadingAssertions.assertClassNotLoaded(classUnderTest);
}
Also used : MetadataReaderFactory(org.springframework.core.type.classreading.MetadataReaderFactory) SimpleMetadataReaderFactory(org.springframework.core.type.classreading.SimpleMetadataReaderFactory) SimpleMetadataReaderFactory(org.springframework.core.type.classreading.SimpleMetadataReaderFactory) MetadataReader(org.springframework.core.type.classreading.MetadataReader) AssignableTypeFilter(org.springframework.core.type.filter.AssignableTypeFilter) Test(org.junit.Test)

Example 12 with AssignableTypeFilter

use of org.springframework.core.type.filter.AssignableTypeFilter in project spring-framework by spring-projects.

the class ClassPathScanningCandidateComponentProviderTests method testWithMultipleMatchingFilters.

@Test
public void testWithMultipleMatchingFilters() {
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
    provider.addIncludeFilter(new AnnotationTypeFilter(Component.class));
    provider.addIncludeFilter(new AssignableTypeFilter(FooServiceImpl.class));
    Set<BeanDefinition> candidates = provider.findCandidateComponents(TEST_BASE_PACKAGE);
    assertEquals(6, candidates.size());
    assertTrue(containsBeanClass(candidates, NamedComponent.class));
    assertTrue(containsBeanClass(candidates, ServiceInvocationCounter.class));
    assertTrue(containsBeanClass(candidates, FooServiceImpl.class));
}
Also used : FooServiceImpl(example.scannable.FooServiceImpl) ServiceInvocationCounter(example.scannable.ServiceInvocationCounter) AnnotationTypeFilter(org.springframework.core.type.filter.AnnotationTypeFilter) ProfileMetaAnnotatedComponent(example.profilescan.ProfileMetaAnnotatedComponent) NamedComponent(example.scannable.NamedComponent) ProfileAnnotatedComponent(example.profilescan.ProfileAnnotatedComponent) DevComponent(example.profilescan.DevComponent) Component(org.springframework.stereotype.Component) DefaultNamedComponent(example.scannable.DefaultNamedComponent) BeanDefinition(org.springframework.beans.factory.config.BeanDefinition) AnnotatedGenericBeanDefinition(org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition) NamedComponent(example.scannable.NamedComponent) DefaultNamedComponent(example.scannable.DefaultNamedComponent) AssignableTypeFilter(org.springframework.core.type.filter.AssignableTypeFilter) Test(org.junit.Test)

Example 13 with AssignableTypeFilter

use of org.springframework.core.type.filter.AssignableTypeFilter in project spring-framework by spring-projects.

the class ClassPathScanningCandidateComponentProviderTests method testWithInterfaceType.

@Test
public void testWithInterfaceType() {
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
    provider.addIncludeFilter(new AssignableTypeFilter(FooDao.class));
    Set<BeanDefinition> candidates = provider.findCandidateComponents(TEST_BASE_PACKAGE);
    assertEquals(1, candidates.size());
    assertTrue(containsBeanClass(candidates, StubFooDao.class));
}
Also used : StubFooDao(example.scannable.StubFooDao) BeanDefinition(org.springframework.beans.factory.config.BeanDefinition) AnnotatedGenericBeanDefinition(org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition) StubFooDao(example.scannable.StubFooDao) FooDao(example.scannable.FooDao) AssignableTypeFilter(org.springframework.core.type.filter.AssignableTypeFilter) Test(org.junit.Test)

Example 14 with AssignableTypeFilter

use of org.springframework.core.type.filter.AssignableTypeFilter in project spring-framework by spring-projects.

the class ClassPathBeanDefinitionScannerTests method testMultipleCustomExcludeFiltersAndDefaults.

@Test
public void testMultipleCustomExcludeFiltersAndDefaults() {
    GenericApplicationContext context = new GenericApplicationContext();
    ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, true);
    scanner.addExcludeFilter(new AssignableTypeFilter(FooService.class));
    scanner.addExcludeFilter(new AnnotationTypeFilter(Aspect.class));
    int beanCount = scanner.scan(BASE_PACKAGE);
    assertEquals(10, beanCount);
    assertFalse(context.containsBean("fooServiceImpl"));
    assertFalse(context.containsBean("serviceInvocationCounter"));
    assertTrue(context.containsBean("stubFooDao"));
    assertTrue(context.containsBean("myNamedComponent"));
    assertTrue(context.containsBean("myNamedDao"));
    assertTrue(context.containsBean(AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME));
    assertTrue(context.containsBean(AnnotationConfigUtils.REQUIRED_ANNOTATION_PROCESSOR_BEAN_NAME));
    assertTrue(context.containsBean(AnnotationConfigUtils.COMMON_ANNOTATION_PROCESSOR_BEAN_NAME));
    assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_PROCESSOR_BEAN_NAME));
    assertTrue(context.containsBean(AnnotationConfigUtils.EVENT_LISTENER_FACTORY_BEAN_NAME));
}
Also used : FooService(example.scannable.FooService) AnnotationTypeFilter(org.springframework.core.type.filter.AnnotationTypeFilter) GenericApplicationContext(org.springframework.context.support.GenericApplicationContext) Aspect(org.aspectj.lang.annotation.Aspect) AssignableTypeFilter(org.springframework.core.type.filter.AssignableTypeFilter) Test(org.junit.Test)

Example 15 with AssignableTypeFilter

use of org.springframework.core.type.filter.AssignableTypeFilter in project spring-framework by spring-projects.

the class ClassPathScanningCandidateComponentProviderTests method testExcludeTakesPrecedence.

@Test
public void testExcludeTakesPrecedence() {
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
    provider.addIncludeFilter(new AnnotationTypeFilter(Component.class));
    provider.addIncludeFilter(new AssignableTypeFilter(FooServiceImpl.class));
    provider.addExcludeFilter(new AssignableTypeFilter(FooService.class));
    Set<BeanDefinition> candidates = provider.findCandidateComponents(TEST_BASE_PACKAGE);
    assertEquals(5, candidates.size());
    assertTrue(containsBeanClass(candidates, NamedComponent.class));
    assertTrue(containsBeanClass(candidates, ServiceInvocationCounter.class));
    assertFalse(containsBeanClass(candidates, FooServiceImpl.class));
}
Also used : FooServiceImpl(example.scannable.FooServiceImpl) AutowiredQualifierFooService(example.scannable.AutowiredQualifierFooService) FooService(example.scannable.FooService) ServiceInvocationCounter(example.scannable.ServiceInvocationCounter) AnnotationTypeFilter(org.springframework.core.type.filter.AnnotationTypeFilter) ProfileMetaAnnotatedComponent(example.profilescan.ProfileMetaAnnotatedComponent) NamedComponent(example.scannable.NamedComponent) ProfileAnnotatedComponent(example.profilescan.ProfileAnnotatedComponent) DevComponent(example.profilescan.DevComponent) Component(org.springframework.stereotype.Component) DefaultNamedComponent(example.scannable.DefaultNamedComponent) BeanDefinition(org.springframework.beans.factory.config.BeanDefinition) AnnotatedGenericBeanDefinition(org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition) NamedComponent(example.scannable.NamedComponent) DefaultNamedComponent(example.scannable.DefaultNamedComponent) AssignableTypeFilter(org.springframework.core.type.filter.AssignableTypeFilter) Test(org.junit.Test)

Aggregations

AssignableTypeFilter (org.springframework.core.type.filter.AssignableTypeFilter)17 Test (org.junit.Test)12 BeanDefinition (org.springframework.beans.factory.config.BeanDefinition)7 AnnotatedGenericBeanDefinition (org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition)6 AnnotationTypeFilter (org.springframework.core.type.filter.AnnotationTypeFilter)6 FooService (example.scannable.FooService)5 MetadataReader (org.springframework.core.type.classreading.MetadataReader)4 MetadataReaderFactory (org.springframework.core.type.classreading.MetadataReaderFactory)4 SimpleMetadataReaderFactory (org.springframework.core.type.classreading.SimpleMetadataReaderFactory)4 FooServiceImpl (example.scannable.FooServiceImpl)3 GenericApplicationContext (org.springframework.context.support.GenericApplicationContext)3 DevComponent (example.profilescan.DevComponent)2 ProfileAnnotatedComponent (example.profilescan.ProfileAnnotatedComponent)2 ProfileMetaAnnotatedComponent (example.profilescan.ProfileMetaAnnotatedComponent)2 AutowiredQualifierFooService (example.scannable.AutowiredQualifierFooService)2 DefaultNamedComponent (example.scannable.DefaultNamedComponent)2 FooDao (example.scannable.FooDao)2 NamedComponent (example.scannable.NamedComponent)2 ServiceInvocationCounter (example.scannable.ServiceInvocationCounter)2 StubFooDao (example.scannable.StubFooDao)2