Example usage for org.springframework.context.annotation ClassPathScanningCandidateComponentProvider clearCache

List of usage examples for org.springframework.context.annotation ClassPathScanningCandidateComponentProvider clearCache

Introduction

In this page you can find the example usage for org.springframework.context.annotation ClassPathScanningCandidateComponentProvider clearCache.

Prototype

public void clearCache() 

Source Link

Document

Clear the local metadata cache, if any, removing all cached class metadata.

Usage

From source file:natalia.dymnikova.cluster.scheduler.impl.RolesChecker.java

private List<Set<ScannedGenericBeanDefinition>> scan(final String basePackage, final List<TypeFilter> filters) {
    final ArrayList<Set<ScannedGenericBeanDefinition>> sets = new ArrayList<>(filters.size());

    final ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false, scannerEnvironment);//from w  ww. j a  v  a 2 s . c o m

    scanner.setResourceLoader(resourcePatternResolver);
    scanner.setMetadataReaderFactory(metadataReaderFactory);

    for (final TypeFilter filter : filters) {
        scanner.resetFilters(false);
        scanner.addIncludeFilter(new CompositeFilter(new AnnotationTypeFilter(Component.class), filter));

        final Set<BeanDefinition> candidateComponents = scanner.findCandidateComponents(basePackage);

        final Set<ScannedGenericBeanDefinition> collect = candidateComponents.stream()
                .map(bd -> (ScannedGenericBeanDefinition) bd).collect(toSet());

        sets.add(collect);
    }

    scanner.clearCache();

    return sets;
}