List of usage examples for org.springframework.context.annotation ClassPathScanningCandidateComponentProvider ClassPathScanningCandidateComponentProvider
public ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters)
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; }