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

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

Introduction

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

Prototype

public void addIncludeFilter(TypeFilter includeFilter) 

Source Link

Document

Add an include type filter to the end of the inclusion list.

Usage

From source file:fr.gael.dhus.gwt.GWTWebapp.java

@Override
public void init() {
    this.name = "";
    this.servlets = new ArrayList<WebServlet>();
    this.welcomeFiles = new ArrayList<String>();

    servlets.add(new GWTClientWebServlet("home", "/home"));

    welcomeFiles.add("home");

    ClassPathScanningCandidateComponentProvider scan = new ClassPathScanningCandidateComponentProvider(false);
    scan.addIncludeFilter(new AnnotationTypeFilter(RPCService.class));
    logger.info("    Initializing RPC services");
    for (BeanDefinition bd : scan.findCandidateComponents("fr.gael.dhus.gwt.services")) {
        logger.info("     - service : " + bd.getBeanClassName());
        try {/*from  w w  w.  ja  v  a2s  .  c  o m*/
            Class<?> servletClass = GWTWebapp.class.getClassLoader().loadClass(bd.getBeanClassName());
            RPCService annotation = AnnotationUtils.findAnnotation(servletClass, RPCService.class);
            servlets.add(new RPCServlet((Servlet) (servletClass.newInstance()), annotation.value(),
                    "/" + annotation.value()));
        } catch (ClassNotFoundException e) {
            System.err.println("Cannot load service : '" + bd.getBeanClassName() + "'");
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}

From source file:com.springinpractice.ch11.oxm.ClasspathScanningJaxb2Marshaller.java

/**
 * @return//from   w w  w .j  a  v a 2 s.  com
 * @throws Exception
 */
private Class<?>[] getXmlRootElementClasses() throws Exception {
    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);
    scanner.addIncludeFilter(new AnnotationTypeFilter(XmlRootElement.class));

    List<Class<?>> classes = new ArrayList<Class<?>>();
    for (String basePackage : basePackages) {
        Set<BeanDefinition> definitions = scanner.findCandidateComponents(basePackage);
        for (BeanDefinition definition : definitions) {
            String className = definition.getBeanClassName();
            log.info("Found class: {}", className);
            classes.add(Class.forName(className));
        }
    }

    return classes.toArray(new Class<?>[0]);
}

From source file:com.github.javarch.persistence.orm.hibernate.spi.multitenant.CurrentTenantIdentifierFinder.java

@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {

    String connectionProvidersPackage = env
            .getProperty(HibernateEnviroment.CURRENT_TENANT_IDENTIFIER_RESOLVER_PACKAGE, "");
    LOGGER.debug("Buscando @CurrentTenantIdentifierResolver no pacote {}", connectionProvidersPackage);

    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);//from  w w w .  j  a v a2s.  com
    scanner.addIncludeFilter(new AnnotationTypeFilter(CurrentTenantIdentifierResolver.class));

    Set<BeanDefinition> beanDefinitions = scanner.findCandidateComponents(connectionProvidersPackage);
    if (beanDefinitions.isEmpty()) {
        Set<BeanDefinition> defaultBeanDefinition = scanner
                .findCandidateComponents("com.github.javarch.persistence.orm.hibernate.spi.multitenant");
        registrarBeanDefinitions(registry, defaultBeanDefinition);
    } else {
        registrarBeanDefinitions(registry, beanDefinitions);
    }

}

From source file:podd.model.visitor.VisitorAdapterUnitTest.java

@Test
public void testCoversAllClasses() throws Exception {
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProviderAllowInterface(
            true);//from w w w .j  a  va  2s .  co m
    provider.addIncludeFilter(new AssignableTypeFilter(Entity.class));

    Set<BeanDefinition> components = provider.findCandidateComponents("podd/model");
    resolveAndCheckPackage(components);
}

From source file:io.gravitee.repository.mongodb.common.AbstractRepositoryConfiguration.java

protected Set<Class<?>> getInitialEntitySet() throws ClassNotFoundException {

    String basePackage = getMappingBasePackage();
    Set<Class<?>> initialEntitySet = new HashSet<Class<?>>();

    if (StringUtils.hasText(basePackage)) {
        ClassPathScanningCandidateComponentProvider componentProvider = new ClassPathScanningCandidateComponentProvider(
                false);//from   www . j ava2 s. co  m
        componentProvider.addIncludeFilter(new AnnotationTypeFilter(Document.class));
        componentProvider.addIncludeFilter(new AnnotationTypeFilter(Persistent.class));

        for (BeanDefinition candidate : componentProvider.findCandidateComponents(basePackage)) {
            initialEntitySet
                    .add(ClassUtils.forName(candidate.getBeanClassName(), this.getClass().getClassLoader()));
        }
    }

    return initialEntitySet;
}

From source file:com.github.gdrouet.scannerbenchmark.JmhBenchmark.java

/**
 * <p>/*from   ww w .j  a  v  a 2 s  .c  om*/
 * Looking for type annotated with an annotation with Spring.
 * </p>
 */
@Benchmark
public void scanAnnotatedTypeWithSpring() {
    final ClassPathScanningCandidateComponentProvider s = new ClassPathScanningCandidateComponentProvider(
            false);
    s.addIncludeFilter(new AnnotationTypeFilter(ANNOTATION));
    final Set<BeanDefinition> r = s.findCandidateComponents(PACKAGE);
    LOGGER.info("{} classes annotated with {} retrieved with Spring", r.size(), ANNOTATION.getName());
}

From source file:com.walmart.gatling.JerseyConfig.java

/**
 * Scans for {@link javax.ws.rs.Path} annotated classes in the given packages and registers them with Jersey.
 * @param controllerPackages Jersery controller base package names
 *///from  w  w w .ja v  a 2 s . c  o  m
protected void registerControllers(String[] controllerPackages) {
    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);
    scanner.addIncludeFilter(new AnnotationTypeFilter(javax.ws.rs.Path.class));

    for (String controllerPackage : controllerPackages) {
        logger.info("Scanning for Jersey controllers in '{}' package.", controllerPackage);

        for (BeanDefinition bd : scanner.findCandidateComponents(controllerPackage)) {
            logger.info("Registering Jersey endpoint class:  {}", bd.getBeanClassName());
            Class<?> controllerClazz = getJerseyControllerClass(bd.getBeanClassName());
            if (controllerClazz != null)
                register(controllerClazz);
        }
    }
}

From source file:org.moserp.RestConfiguration.java

@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            true);//from  w w  w .j ava  2s.  c o m
    provider.addIncludeFilter(new AssignableTypeFilter(IdentifiableEntity.class));
    Set<BeanDefinition> components = provider.findCandidateComponents(this.getClass().getPackage().getName());
    List<Class<?>> classes = new ArrayList<>();

    components.forEach(component -> {
        try {
            classes.add(Class.forName(component.getBeanClassName()));
        } catch (Exception e) {
            e.printStackTrace();
        }
    });

    config.exposeIdsFor(classes.toArray(new Class[classes.size()]));
}

From source file:org.openmrs.module.kenyaemr.calculation.CalculationManager.java

/**
 * Refreshes registered calculation classes
 *///from  w w w . j  a v a 2s  .c o  m
public synchronized void refresh() {
    clear();

    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);
    scanner.addIncludeFilter(new AssignableTypeFilter(BaseEmrCalculation.class));

    for (BeanDefinition bd : scanner.findCandidateComponents(CalculationManager.class.getPackage().getName())) {
        try {
            Class clazz = Class.forName(bd.getBeanClassName());
            calculationClasses.put(bd.getBeanClassName(), clazz);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        log.info("Found calculation class :" + bd.getBeanClassName());
    }
}

From source file:com.googlecode.icegem.serialization.spring.AutoSerializableRegistrarBean.java

private void registerClasses(ClassLoader classLoader) throws ClassNotFoundException {

    List<Class<?>> toRegister = new ArrayList<Class<?>>();

    for (String pack : scanPackages) {
        logger.debug("Scan {}.* for @AutoSerializable classes", pack);
        ClassPathScanningCandidateComponentProvider ppp = new ClassPathScanningCandidateComponentProvider(
                false);//from  w  ww. j  ava  2  s. co  m
        ppp.addIncludeFilter(new AnnotationTypeFilter(AutoSerializable.class));
        Set<BeanDefinition> candidateComponents = ppp.findCandidateComponents(pack);
        for (BeanDefinition beanDefinition : candidateComponents) {
            String className = beanDefinition.getBeanClassName();
            final Class<?> clazz = Class.forName(className);
            toRegister.add(clazz);
        }
    }

    toRegister.addAll(registeredClasses);
    logger.info("All classes that will be registered in GemFire: " + toRegister);

    try {
        HierarchyRegistry.registerAll(classLoader, toRegister);
    } catch (InvalidClassException e) {
        final String msg = "Some class from list " + toRegister + " is nor serializable. Cause: "
                + e.getMessage();
        throw new IllegalArgumentException(msg, e);
    } catch (CannotCompileException e) {
        final String msg = "Can't compile DataSerializer classes for some classes from list " + toRegister
                + ". Cause: " + e.getMessage();
        throw new IllegalArgumentException(msg, e);
    }
}