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:com.qubit.solution.fenixedu.integration.cgd.ui.cgdConfiguration.CgdIntegrationConfigurationController.java

@RequestMapping(value = "/update/{oid}/strategies", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
public @org.springframework.web.bind.annotation.ResponseBody List<String> requestAvailableStrategies(
        @PathVariable("oid") CgdIntegrationConfiguration cgdIntegrationConfiguration, Model model) {

    List<String> results = new ArrayList<String>();
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            false);//from   ww  w. jav  a  2s. co  m
    provider.addIncludeFilter(new AssignableTypeFilter(IMemberIDAdapter.class));
    for (BeanDefinition definition : provider
            .findCandidateComponents("/com/qubit/solution/fenixedu/integration/cgd/services/memberid")) {
        results.add(definition.getBeanClassName());
    }

    return results;
}

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

/**
 * @see org.openmrs.module.kenyacore.ContentManager#refresh()
 *///from w w  w  .  ja  v  a 2 s .c om
@Override
public synchronized void refresh() {
    calculationClasses.clear();
    flagCalculationClasses.clear();

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

    for (BeanDefinition bd : scanner.findCandidateComponents("org.openmrs.module")) {
        try {
            Class<? extends PatientCalculation> clazz = (Class<? extends PatientCalculation>) Context
                    .loadClass(bd.getBeanClassName());
            calculationClasses.put(bd.getBeanClassName(), clazz);

            if (PatientFlagCalculation.class.isAssignableFrom(clazz)) {
                flagCalculationClasses.add((Class<? extends PatientFlagCalculation>) clazz);
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        log.debug("Registered calculation class " + bd.getBeanClassName());
    }
}

From source file:org.owasp.webgoat.application.WebGoatServletListener.java

private void loadServlets(ServletContextEvent sce) {
    final ServletContext servletContext = sce.getServletContext();
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            false);/* ww  w.  ja v a  2  s . c o m*/
    provider.addIncludeFilter(new AnnotationTypeFilter(LessonServletMapping.class));
    Set<BeanDefinition> candidateComponents = provider.findCandidateComponents("org.owasp.webgoat");
    try {
        for (BeanDefinition beanDefinition : candidateComponents) {
            Class controllerClass = Class.forName(beanDefinition.getBeanClassName());
            LessonServletMapping pathAnnotation = (LessonServletMapping) controllerClass
                    .getAnnotation(LessonServletMapping.class);
            final ServletRegistration.Dynamic dynamic = servletContext
                    .addServlet(controllerClass.getSimpleName(), controllerClass);
            dynamic.addMapping(pathAnnotation.path());
        }
    } catch (Exception e) {
        logger.error("Error", e);
    }
}

From source file:com.googlecode.spring.appengine.objectify.OfyServiceBuilder.java

protected List<Class<?>> scanBasePackages() {
    List<Class<?>> classes = new ArrayList<Class<?>>();
    for (String basePackage : basePackages) {
        if (this.logger.isInfoEnabled()) {
            this.logger.info("Scanning package [" + basePackage + "]");
        }/*ww w  .j a  v  a2  s.  com*/
        ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
                false);
        scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class));
        Set<BeanDefinition> candidates = scanner.findCandidateComponents(basePackage);
        for (BeanDefinition candidate : candidates) {
            Class<?> clazz = ClassUtils.resolveClassName(candidate.getBeanClassName(),
                    ClassUtils.getDefaultClassLoader());
            classes.add(clazz);
        }
    }
    return classes;
}

From source file:com.couchbase.spring.config.AbstractCouchbaseConfiguration.java

/**
 * Scans the mapping base package for classes annotated with {@link Document}.
 *///from  www .  j  a v a2 s  .c o  m
protected Set<Class<?>> getInitialEntitySet() throws ClassNotFoundException {
    String basePackage = getMappingBasePackage();
    Set<Class<?>> initialEntitySet = new HashSet<Class<?>>();

    if (StringUtils.hasText(basePackage)) {
        ClassPathScanningCandidateComponentProvider componentProvider = new ClassPathScanningCandidateComponentProvider(
                false);
        componentProvider.addIncludeFilter(new AnnotationTypeFilter(Document.class));
        componentProvider.addIncludeFilter(new AnnotationTypeFilter(Persistent.class));

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

    return initialEntitySet;
}

From source file:com.dm.estore.config.WebAppInitializer.java

private void registerListener(ServletContext servletContext) {
    AnnotationConfigWebApplicationContext rootContext = createContext(ApplicationModule.class);

    // find all classes marked as @Configuration in classpath
    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);/*from   w w  w  .j  av a 2  s . com*/
    scanner.addIncludeFilter(new AnnotationTypeFilter(Configuration.class));
    //TypeFilter tf = new AssignableTypeFilter(CLASS_YOU_WANT.class);
    //s.addIncludeFilter(tf);
    //s.scan("package.you.want1", "package.you.want2");       
    //String[] beans = bdr.getBeanDefinitionNames();
    for (BeanDefinition bd : scanner.findCandidateComponents("com.dm.estore")) {
        final String beanClassName = bd.getBeanClassName();
        final String simpleName = ClassUtils.getShortCanonicalName(beanClassName);
        if (!excludeFromAutoSearch.contains(beanClassName)
                && !simpleName.toLowerCase().startsWith(TEST_RESOURCES_PREFIX)) {
            LOG.warn("Load configuration from: " + bd.getBeanClassName());
            try {
                Class<?> clazz = WebAppInitializer.class.getClassLoader().loadClass(bd.getBeanClassName());
                rootContext.register(clazz);
            } catch (ClassNotFoundException ex) {
                LOG.error("Unable to load class: " + bd.getBeanClassName(), ex);
            }
        }
    }
    rootContext.refresh();

    servletContext.addListener(new ContextLoaderListener(rootContext));
}

From source file:biz.c24.io.spring.config.C24ModelBeanDefinitionParser.java

/**
 * Classpath scans the given base package for subclasses of {@link biz.c24.io.api.data.Element} whose names end on
 * {@code DocumentRootElement}.// w  ww . j a  v  a  2  s.  c  o  m
 * 
 * @param basePackage
 * @param context
 * @param source
 * @return
 */
private AbstractBeanDefinition getC24ModelFromPackage(String basePackage, ParserContext context,
        Object source) {

    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            false);
    provider.addIncludeFilter(new TypeFilter() {

        private final TypeFilter nameFilter = new RegexPatternTypeFilter(
                Pattern.compile(".*DocumentRootElement"));
        private final TypeFilter typeFilter = new AssignableTypeFilter(biz.c24.io.api.data.Element.class);

        public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)
                throws IOException {
            return nameFilter.match(metadataReader, metadataReaderFactory)
                    && typeFilter.match(metadataReader, metadataReaderFactory);
        }
    });

    Set<BeanDefinition> result = provider.findCandidateComponents(basePackage);
    if (result.size() != 1) {
        context.getReaderContext().error("Found none or multiple classes ending on 'DocumentRootElement'!",
                source);
    }

    String elementClassName = result.iterator().next().getBeanClassName();
    return getC24ModelFromElement(elementClassName, context, source);
}

From source file:com.qubit.solution.fenixedu.bennu.webservices.servlet.BennuWebservicesInitializer.java

@Atomic(mode = TxMode.READ)
private void synchorizeServices() {
    for (Class clazz : BennuWebService.getAvailableWebServices()) {
        checkServerConfigurationAndCreateIfNeeded(clazz.getName());
    }//from   w w  w  .  ja  v a2 s. co m

    // Since clients are initialised by the WsServlet we need to look them up via classpath scanning
    // using spring componentprovider since we do not have OMNIS lookup available
    // 21 April 2015 - Paulo Abrantes

    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            false);
    provider.addIncludeFilter(new AssignableTypeFilter(BennuWebServiceClient.class));

    Set<BeanDefinition> components = provider
            .findCandidateComponents(BennuWebServiceClient.class.getPackage().getName().replace('.', '/'));
    for (BeanDefinition component : components) {
        try {
            Class cls = Class.forName(component.getBeanClassName());
            checkClientConfigurationAndCreateIfNeeded(cls.getName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        // use class cls found
    }

    deleteConfigurations(Bennu.getInstance().getWebserviceConfigurationsSet().stream()
            .filter(configuration -> !configuration.isImplementationClassAvailable())
            .collect(Collectors.toList()));

}

From source file:org.openmrs.module.CDAGenerator.api.impl.CDAGeneratorServiceImpl.java

@Override
public List<BaseCdaSectionHandler> getAllCdaSectionHandlers() {
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            true);/*from w w w . j a  v a  2  s. c  o m*/

    provider.addIncludeFilter(new AssignableTypeFilter(BaseCdaSectionHandler.class));

    List<BaseCdaSectionHandler> sectionHandlers = new ArrayList<BaseCdaSectionHandler>();

    // scan in org.openmrs.module.CDAGenerator.Sectionhandlers package
    Set<BeanDefinition> components = provider
            .findCandidateComponents("org.openmrs.module.CDAGenerator.SectionHandlers");

    for (BeanDefinition component : components) {
        try {

            Class cls = Class.forName(component.getBeanClassName());

            BaseCdaSectionHandler p = (BaseCdaSectionHandler) cls.newInstance();
            if (p.templateid != null) {
                sectionHandlers.add(p);
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
    return sectionHandlers;
}

From source file:org.openmrs.module.CDAGenerator.api.impl.CDAGeneratorServiceImpl.java

@Override
public List<BaseCdaTypeHandler> getAllCdaTypeChildHandlers() {

    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            true);/*from w ww  . j  a v a  2s .c  o m*/

    provider.addIncludeFilter(new AssignableTypeFilter(BaseCdaTypeHandler.class));

    List<BaseCdaTypeHandler> handlers = new ArrayList<BaseCdaTypeHandler>();

    // scan in org.openmrs.module.CDAGenerator.CDAHandlers package
    Set<BeanDefinition> components = provider
            .findCandidateComponents("org.openmrs.module.CDAGenerator.CDAHandlers");

    for (BeanDefinition component : components) {
        try {

            Class cls = Class.forName(component.getBeanClassName());

            BaseCdaTypeHandler p = (BaseCdaTypeHandler) cls.newInstance();
            if (p.templateid != null) {
                handlers.add(p);
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
    return handlers;
}