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

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

Introduction

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

Prototype

public ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters) 

Source Link

Document

Create a ClassPathScanningCandidateComponentProvider with a StandardEnvironment .

Usage

From source file:com.reactivetechnologies.platform.utils.EntityFinder.java

/**
 * /*w  w w . j av a  2 s.  c o m*/
 * @param basePkg
 * @return
 * @throws ClassNotFoundException
 */
public static Collection<Class<?>> findMapEntityClasses(String basePkg) throws ClassNotFoundException {
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            false);
    provider.addIncludeFilter(new TypeFilter() {

        @Override
        public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)
                throws IOException {
            AnnotationMetadata aMeta = metadataReader.getAnnotationMetadata();
            return aMeta.hasAnnotation(HzMapConfig.class.getName());
        }
    });
    //consider the finder class to be in the root package
    Set<BeanDefinition> beans = null;
    try {
        beans = provider.findCandidateComponents(StringUtils.hasText(basePkg) ? basePkg
                : EntityFinder.class.getName().substring(0, EntityFinder.class.getName().lastIndexOf(".")));
    } catch (Exception e) {
        throw new IllegalArgumentException("Unable to scan for entities under base package", e);
    }

    Set<Class<?>> classes = new HashSet<>();
    if (beans != null && !beans.isEmpty()) {
        classes = new HashSet<>(beans.size());
        for (BeanDefinition bd : beans) {
            classes.add(Class.forName(bd.getBeanClassName()));
        }
    } else {
        log.warn(">> Did not find any key value entities under the given base scan package [" + basePkg + "]");
    }
    return classes;

}

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

/**
 * Refreshes registered calculation classes
 *///from   w ww  .  j  a v  a  2 s  .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.sdl.odata.datasource.jpa.JpaPostProcessor.java

@PostConstruct
public void setProvider() {
    if (provider == null) {
        provider = new ClassPathScanningCandidateComponentProvider(false);
        provider.addIncludeFilter(new AnnotationTypeFilter(Entity.class, false));
    }//from w w w  .j  a  va  2 s . c o  m
}

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

private void loadServlets(ServletContextEvent sce) {
    final ServletContext servletContext = sce.getServletContext();
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            false);//from   www. ja v a  2s.  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.flyway.core.migration.java.JavaMigrationResolver.java

public Collection<Migration> resolveMigrations() {
    Collection<Migration> migrations = new ArrayList<Migration>();

    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            false);//w  w w.  jav  a2  s.  co  m
    provider.addIncludeFilter(new AssignableTypeFilter(JavaMigration.class));
    Set<BeanDefinition> components = provider.findCandidateComponents(basePackage);
    for (BeanDefinition beanDefinition : components) {
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        Class<?> clazz = ClassUtils.resolveClassName(beanDefinition.getBeanClassName(), classLoader);
        JavaMigration javaMigration = (JavaMigration) BeanUtils.instantiateClass(clazz);
        migrations.add(new JavaMigrationExecutor(javaMigration));
    }

    return migrations;
}

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   ww w.jav a  2s  .  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.foilen.smalltools.tools.Hibernate51Tools.java

/**
 * Generate the SQL file. This is based on the code in {@link LocalSessionFactoryBuilder#scanPackages(String...)}
 *
 * @param dialect/*from   w w w .  ja  v a2  s.  co m*/
 *            the dialect (e.g: org.hibernate.dialect.MySQL5InnoDBDialect )
 * @param outputSqlFile
 *            where to put the generated SQL file
 * @param useUnderscore
 *            true: to have tables names like "employe_manager" ; false: to have tables names like "employeManager"
 * @param packagesToScan
 *            the packages where your entities are
 */
public static void generateSqlSchema(Class<? extends Dialect> dialect, String outputSqlFile,
        boolean useUnderscore, String... packagesToScan) {

    BootstrapServiceRegistry bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder().build();

    MetadataSources metadataSources = new MetadataSources(bootstrapServiceRegistry);

    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);
    scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class));
    scanner.addIncludeFilter(new AnnotationTypeFilter(Embeddable.class));
    scanner.addIncludeFilter(new AnnotationTypeFilter(MappedSuperclass.class));
    for (String pkg : packagesToScan) {
        for (BeanDefinition beanDefinition : scanner.findCandidateComponents(pkg)) {
            metadataSources.addAnnotatedClassName(beanDefinition.getBeanClassName());
        }
    }

    StandardServiceRegistryBuilder standardServiceRegistryBuilder = new StandardServiceRegistryBuilder(
            bootstrapServiceRegistry);
    standardServiceRegistryBuilder.applySetting(AvailableSettings.DIALECT, dialect.getName());
    StandardServiceRegistryImpl ssr = (StandardServiceRegistryImpl) standardServiceRegistryBuilder.build();
    MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(ssr);

    if (useUnderscore) {
        metadataBuilder.applyImplicitNamingStrategy(new SpringImplicitNamingStrategy());
        metadataBuilder.applyPhysicalNamingStrategy(new SpringPhysicalNamingStrategy());
    }

    new SchemaExport() //
            .setHaltOnError(true) //
            .setOutputFile(outputSqlFile) //
            .setFormat(true) //
            .setDelimiter(";") //
            .execute(EnumSet.of(TargetType.SCRIPT), SchemaExport.Action.CREATE, metadataBuilder.build());

}

From source file:hwolf.spring.boot.servlet.ClassPathScanner.java

@SuppressWarnings("unchecked")
private ClassPathScanningCandidateComponentProvider buildClassPathScanner() {

    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);/* w w  w  .j  ava  2 s  .  c om*/
    for (Class<?> type : types) {
        if (type.isAnnotation()) {
            if (debug) {
                LOGGER.debug("Search for classes annotated with " + type);
            }
            scanner.addIncludeFilter(new AnnotationTypeFilter((Class<Annotation>) type));
        } else {
            if (debug) {
                LOGGER.debug("Search for classes assignable to " + type);
            }
            scanner.addIncludeFilter(new AssignableTypeFilter(type));
        }
    }
    return scanner;
}

From source file:edu.rit.flick.config.FileArchiverExtensionRegistry.java

/**
 * Constructs the file archiver extension registry and scans for
 * FileArchiver classes.//from w w  w.  j a  v a 2  s  .  c o m
 */
private FileArchiverExtensionRegistry() {
    registry = new HashMap<String, FileDeflatorInflator>();
    deflationOptionSets = new ArrayList<DeflationOptionSet>();
    inflationOptionSets = new ArrayList<InflationOptionSet>();

    final ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false) {
        @Override
        protected boolean isCandidateComponent(AnnotatedBeanDefinition beanDefinition) {
            return beanDefinition.getMetadata().isIndependent();
        }
    };

    scanner.addIncludeFilter(new AnnotationTypeFilter(RegisterFileDeflatorInflator.class));

    for (final BeanDefinition bd : scanner.findCandidateComponents("*")) {
        try {
            final Class<?> cl = Class.forName(bd.getBeanClassName());
            final RegisterFileDeflatorInflator fileDIP = cl.getAnnotation(RegisterFileDeflatorInflator.class);
            if (fileDIP != null)
                registerFileArchiverExtensions(fileDIP);
        } catch (Exception e) {
        }
    }
}

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

@Override
public List<BaseCdaTypeHandler> getAllCdaTypeChildHandlers() {

    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            true);//from  www .  j  ava  2 s .  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;
}