11/*
2- * Copyright 2002-2016 the original author or authors.
2+ * Copyright 2002-2017 the original author or authors.
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
3636import example .scannable .ScopedProxyTestBean ;
3737import example .scannable .ServiceInvocationCounter ;
3838import example .scannable .StubFooDao ;
39+ import example .scannable .sub .BarComponent ;
3940import org .aspectj .lang .annotation .Aspect ;
4041import org .junit .Test ;
4142
@@ -98,7 +99,31 @@ private void testDefault(ClassPathScanningCandidateComponentProvider provider,
9899 assertTrue (containsBeanClass (candidates , StubFooDao .class ));
99100 assertTrue (containsBeanClass (candidates , NamedStubDao .class ));
100101 assertTrue (containsBeanClass (candidates , ServiceInvocationCounter .class ));
101- assertEquals (6 , candidates .size ());
102+ assertTrue (containsBeanClass (candidates , BarComponent .class ));
103+ assertEquals (7 , candidates .size ());
104+ assertBeanDefinitionType (candidates , expectedBeanDefinitionType );
105+ }
106+
107+ @ Test
108+ public void antStylePackageWithScan () {
109+ ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider (true );
110+ provider .setResourceLoader (new DefaultResourceLoader (
111+ CandidateComponentsTestClassLoader .disableIndex (getClass ().getClassLoader ())));
112+ testAntStyle (provider , ScannedGenericBeanDefinition .class );
113+ }
114+
115+ @ Test
116+ public void antStylePackageWithIndex () {
117+ ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider (true );
118+ provider .setResourceLoader (new DefaultResourceLoader (TEST_BASE_CLASSLOADER ));
119+ testAntStyle (provider , AnnotatedGenericBeanDefinition .class );
120+ }
121+
122+ private void testAntStyle (ClassPathScanningCandidateComponentProvider provider ,
123+ Class <? extends BeanDefinition > expectedBeanDefinitionType ) {
124+ Set <BeanDefinition > candidates = provider .findCandidateComponents (TEST_BASE_PACKAGE + ".**.sub" );
125+ assertTrue (containsBeanClass (candidates , BarComponent .class ));
126+ assertEquals (1 , candidates .size ());
102127 assertBeanDefinitionType (candidates , expectedBeanDefinitionType );
103128 }
104129
@@ -200,7 +225,8 @@ private void testCustomSupportedIncludeAndExcludeFilter(ClassPathScanningCandida
200225 Set <BeanDefinition > candidates = provider .findCandidateComponents (TEST_BASE_PACKAGE );
201226 assertTrue (containsBeanClass (candidates , NamedComponent .class ));
202227 assertTrue (containsBeanClass (candidates , ServiceInvocationCounter .class ));
203- assertEquals (2 , candidates .size ());
228+ assertTrue (containsBeanClass (candidates , BarComponent .class ));
229+ assertEquals (3 , candidates .size ());
204230 assertBeanDefinitionType (candidates , expectedBeanDefinitionType );
205231 }
206232
@@ -251,7 +277,8 @@ private void testExclude(ClassPathScanningCandidateComponentProvider provider,
251277 assertTrue (containsBeanClass (candidates , FooServiceImpl .class ));
252278 assertTrue (containsBeanClass (candidates , StubFooDao .class ));
253279 assertTrue (containsBeanClass (candidates , ServiceInvocationCounter .class ));
254- assertEquals (3 , candidates .size ());
280+ assertTrue (containsBeanClass (candidates , BarComponent .class ));
281+ assertEquals (4 , candidates .size ());
255282 assertBeanDefinitionType (candidates , expectedBeanDefinitionType );
256283 }
257284
@@ -270,9 +297,10 @@ public void testWithComponentAnnotationOnly() {
270297 provider .addExcludeFilter (new AnnotationTypeFilter (Service .class ));
271298 provider .addExcludeFilter (new AnnotationTypeFilter (Controller .class ));
272299 Set <BeanDefinition > candidates = provider .findCandidateComponents (TEST_BASE_PACKAGE );
273- assertEquals (2 , candidates .size ());
300+ assertEquals (3 , candidates .size ());
274301 assertTrue (containsBeanClass (candidates , NamedComponent .class ));
275302 assertTrue (containsBeanClass (candidates , ServiceInvocationCounter .class ));
303+ assertTrue (containsBeanClass (candidates , BarComponent .class ));
276304 assertFalse (containsBeanClass (candidates , FooServiceImpl .class ));
277305 assertFalse (containsBeanClass (candidates , StubFooDao .class ));
278306 assertFalse (containsBeanClass (candidates , NamedStubDao .class ));
@@ -311,10 +339,11 @@ public void testWithMultipleMatchingFilters() {
311339 provider .addIncludeFilter (new AnnotationTypeFilter (Component .class ));
312340 provider .addIncludeFilter (new AssignableTypeFilter (FooServiceImpl .class ));
313341 Set <BeanDefinition > candidates = provider .findCandidateComponents (TEST_BASE_PACKAGE );
314- assertEquals (6 , candidates .size ());
342+ assertEquals (7 , candidates .size ());
315343 assertTrue (containsBeanClass (candidates , NamedComponent .class ));
316344 assertTrue (containsBeanClass (candidates , ServiceInvocationCounter .class ));
317345 assertTrue (containsBeanClass (candidates , FooServiceImpl .class ));
346+ assertTrue (containsBeanClass (candidates , BarComponent .class ));
318347 }
319348
320349 @ Test
@@ -324,9 +353,10 @@ public void testExcludeTakesPrecedence() {
324353 provider .addIncludeFilter (new AssignableTypeFilter (FooServiceImpl .class ));
325354 provider .addExcludeFilter (new AssignableTypeFilter (FooService .class ));
326355 Set <BeanDefinition > candidates = provider .findCandidateComponents (TEST_BASE_PACKAGE );
327- assertEquals (5 , candidates .size ());
356+ assertEquals (6 , candidates .size ());
328357 assertTrue (containsBeanClass (candidates , NamedComponent .class ));
329358 assertTrue (containsBeanClass (candidates , ServiceInvocationCounter .class ));
359+ assertTrue (containsBeanClass (candidates , BarComponent .class ));
330360 assertFalse (containsBeanClass (candidates , FooServiceImpl .class ));
331361 }
332362
0 commit comments