@@ -338,6 +338,7 @@ public SuiteLauncherDiscoveryRequestBuilder applyConfigurationParametersFromSuit
338
338
* <li>{@link SelectModules}</li>
339
339
* <li>{@link SelectUris}</li>
340
340
* <li>{@link SelectPackages}</li>
341
+ * <li>{@link Select}</li>
341
342
* </ul>
342
343
*
343
344
* @param suiteClass the class to apply the discovery selectors and filter
@@ -349,71 +350,84 @@ public SuiteLauncherDiscoveryRequestBuilder applyConfigurationParametersFromSuit
349
350
public SuiteLauncherDiscoveryRequestBuilder applySelectorsAndFiltersFromSuite (Class <?> suiteClass ) {
350
351
Preconditions .notNull (suiteClass , "Suite class must not be null" );
351
352
352
- // Annotations in alphabetical order (except @SelectClasses)
353
- // @formatter:off
354
- findAnnotationValues (suiteClass , ExcludeClassNamePatterns .class , ExcludeClassNamePatterns ::value )
355
- .flatMap (SuiteLauncherDiscoveryRequestBuilder ::trimmed )
356
- .map (ClassNameFilter ::excludeClassNamePatterns )
353
+ addExcludeFilters (suiteClass );
354
+ // Process @SelectClasses and @SelectMethod before @IncludeClassNamePatterns, since the names
355
+ // of selected classes get automatically added to the include filter.
356
+ addClassAndMethodSelectors (suiteClass );
357
+ addIncludeFilters (suiteClass );
358
+ addOtherSelectors (suiteClass );
359
+ return this ;
360
+ }
361
+
362
+ private void addExcludeFilters (Class <?> suiteClass ) {
363
+ findAnnotationValues (suiteClass , ExcludeClassNamePatterns .class , ExcludeClassNamePatterns ::value ) //
364
+ .flatMap (SuiteLauncherDiscoveryRequestBuilder ::trimmed ) //
365
+ .map (ClassNameFilter ::excludeClassNamePatterns ) //
357
366
.ifPresent (this ::filters );
358
- findAnnotationValues (suiteClass , ExcludeEngines .class , ExcludeEngines ::value )
359
- .map (EngineFilter ::excludeEngines )
367
+ findAnnotationValues (suiteClass , ExcludeEngines .class , ExcludeEngines ::value ) //
368
+ .map (EngineFilter ::excludeEngines ) //
360
369
.ifPresent (this ::filters );
361
- findAnnotationValues (suiteClass , ExcludePackages .class , ExcludePackages ::value )
362
- .map (PackageNameFilter ::excludePackageNames )
370
+ findAnnotationValues (suiteClass , ExcludePackages .class , ExcludePackages ::value ) //
371
+ .map (PackageNameFilter ::excludePackageNames ) //
363
372
.ifPresent (this ::filters );
364
- findAnnotationValues (suiteClass , ExcludeTags .class , ExcludeTags ::value )
365
- .map (TagFilter ::excludeTags )
373
+ findAnnotationValues (suiteClass , ExcludeTags .class , ExcludeTags ::value ) //
374
+ .map (TagFilter ::excludeTags ) //
366
375
.ifPresent (this ::filters );
367
- // Process @SelectClasses before @IncludeClassNamePatterns, since the names
368
- // of selected classes get automatically added to the include filter.
369
- findAnnotation (suiteClass , SelectClasses .class )
370
- .map (annotation -> selectClasses (suiteClass , annotation ))
376
+ }
377
+
378
+ private void addClassAndMethodSelectors (Class <?> suiteClass ) {
379
+ findAnnotation (suiteClass , SelectClasses .class ) //
380
+ .map (annotation -> selectClasses (suiteClass , annotation )) //
371
381
.ifPresent (this ::selectors );
372
- findRepeatableAnnotations (suiteClass , SelectMethod .class )
373
- .stream ()
374
- .map (annotation -> selectMethod (suiteClass , annotation ))
382
+ findRepeatableAnnotations (suiteClass , SelectMethod .class ) //
383
+ .stream () //
384
+ .map (annotation -> selectMethod (suiteClass , annotation )) //
375
385
.forEach (this ::selectors );
376
- findAnnotationValues (suiteClass , IncludeClassNamePatterns .class , IncludeClassNamePatterns ::value )
377
- .flatMap (SuiteLauncherDiscoveryRequestBuilder ::trimmed )
378
- .map (this ::createIncludeClassNameFilter )
386
+ }
387
+
388
+ private void addIncludeFilters (Class <?> suiteClass ) {
389
+ findAnnotationValues (suiteClass , IncludeClassNamePatterns .class , IncludeClassNamePatterns ::value ) //
390
+ .flatMap (SuiteLauncherDiscoveryRequestBuilder ::trimmed ) //
391
+ .map (this ::createIncludeClassNameFilter ) //
379
392
.ifPresent (filters -> {
380
393
this .includeClassNamePatternsUsed = true ;
381
394
filters (filters );
382
395
});
383
- findAnnotationValues (suiteClass , IncludeEngines .class , IncludeEngines ::value )
384
- .map (EngineFilter ::includeEngines )
396
+ findAnnotationValues (suiteClass , IncludeEngines .class , IncludeEngines ::value ) //
397
+ .map (EngineFilter ::includeEngines ) //
385
398
.ifPresent (this ::filters );
386
- findAnnotationValues (suiteClass , IncludePackages .class , IncludePackages ::value )
387
- .map (PackageNameFilter ::includePackageNames )
399
+ findAnnotationValues (suiteClass , IncludePackages .class , IncludePackages ::value ) //
400
+ .map (PackageNameFilter ::includePackageNames ) //
388
401
.ifPresent (this ::filters );
389
- findAnnotationValues (suiteClass , IncludeTags .class , IncludeTags ::value )
390
- .map (TagFilter ::includeTags )
402
+ findAnnotationValues (suiteClass , IncludeTags .class , IncludeTags ::value ) //
403
+ .map (TagFilter ::includeTags ) //
391
404
.ifPresent (this ::filters );
392
- findRepeatableAnnotations (suiteClass , SelectClasspathResource .class )
393
- .stream ()
394
- .map (annotation -> selectClasspathResource (annotation .value (), annotation .line (), annotation .column ()))
405
+ }
406
+
407
+ private void addOtherSelectors (Class <?> suiteClass ) {
408
+ findRepeatableAnnotations (suiteClass , SelectClasspathResource .class ) //
409
+ .stream () //
410
+ .map (annotation -> selectClasspathResource (annotation .value (), annotation .line (), annotation .column ())) //
395
411
.forEach (this ::selectors );
396
- findAnnotationValues (suiteClass , SelectDirectories .class , SelectDirectories ::value )
397
- .map (AdditionalDiscoverySelectors ::selectDirectories )
412
+ findAnnotationValues (suiteClass , SelectDirectories .class , SelectDirectories ::value ) //
413
+ .map (AdditionalDiscoverySelectors ::selectDirectories ) //
398
414
.ifPresent (this ::selectors );
399
- findRepeatableAnnotations (suiteClass , SelectFile .class )
400
- .stream ()
401
- .map (annotation -> selectFile (annotation .value (), annotation .line (), annotation .column ()))
415
+ findRepeatableAnnotations (suiteClass , SelectFile .class ) //
416
+ .stream () //
417
+ .map (annotation -> selectFile (annotation .value (), annotation .line (), annotation .column ())) //
402
418
.forEach (this ::selectors );
403
- findAnnotationValues (suiteClass , SelectModules .class , SelectModules ::value )
404
- .map (AdditionalDiscoverySelectors ::selectModules )
419
+ findAnnotationValues (suiteClass , SelectModules .class , SelectModules ::value ) //
420
+ .map (AdditionalDiscoverySelectors ::selectModules ) //
405
421
.ifPresent (this ::selectors );
406
- findAnnotationValues (suiteClass , SelectUris .class , SelectUris ::value )
407
- .map (AdditionalDiscoverySelectors ::selectUris )
422
+ findAnnotationValues (suiteClass , SelectUris .class , SelectUris ::value ) //
423
+ .map (AdditionalDiscoverySelectors ::selectUris ) //
408
424
.ifPresent (this ::selectors );
409
- findAnnotationValues (suiteClass , SelectPackages .class , SelectPackages ::value )
410
- .map (AdditionalDiscoverySelectors ::selectPackages )
425
+ findAnnotationValues (suiteClass , SelectPackages .class , SelectPackages ::value ) //
426
+ .map (AdditionalDiscoverySelectors ::selectPackages ) //
411
427
.ifPresent (this ::selectors );
412
- findAnnotationValues (suiteClass , Select .class , Select ::value )
413
- .map (AdditionalDiscoverySelectors ::parseIdentifiers )
428
+ findAnnotationValues (suiteClass , Select .class , Select ::value ) //
429
+ .map (AdditionalDiscoverySelectors ::parseIdentifiers ) //
414
430
.ifPresent (this ::selectors );
415
- // @formatter:on
416
- return this ;
417
431
}
418
432
419
433
/**
0 commit comments