List of usage examples for org.springframework.core.type.classreading CachingMetadataReaderFactory CachingMetadataReaderFactory
public CachingMetadataReaderFactory(@Nullable ResourceLoader resourceLoader)
From source file:Main.java
public static Stream<Class> scan(String packageName) { try {/*from w ww . ja v a2 s. co m*/ ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); MetadataReaderFactory readerFactory = new CachingMetadataReaderFactory(resourcePatternResolver); String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + convertClassNameToResourcePath(resolvePlaceholders(packageName)) + "/**/*.class"; return Stream.of(resourcePatternResolver.getResources(packageSearchPath)).filter(Resource::isReadable) .map(r -> getClassOrNull(readerFactory, r)).filter(c -> c != null); } catch (IOException e) { throw new RuntimeException(e); } }
From source file:com.baomidou.mybatisplus.toolkit.PackageHelper.java
/** * <p>/*from ww w . j ava2 s. c o m*/ * ??? * </p> * <p> * <property name="typeAliasesPackage" value="com.baomidou.*.entity"/> * </p> * * @param typeAliasesPackage * ?? * @return */ public static String[] convertTypeAliasesPackage(String typeAliasesPackage) { ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver(); MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver); String pkg = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(typeAliasesPackage) + "/*.class"; /* * ??Resource * ClassLoader.getResource("META-INF")????????? */ try { Set<String> set = new HashSet<String>(); Resource[] resources = resolver.getResources(pkg); if (resources != null && resources.length > 0) { MetadataReader metadataReader = null; for (Resource resource : resources) { if (resource.isReadable()) { metadataReader = metadataReaderFactory.getMetadataReader(resource); set.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage() .getName()); } } } if (!set.isEmpty()) { return set.toArray(new String[] {}); } else { throw new MybatisPlusException("not find typeAliasesPackage:" + pkg); } } catch (Exception e) { throw new MybatisPlusException("not find typeAliasesPackage:" + pkg, e); } }
From source file:com.baomidou.framework.spring.SpringScanPackage.java
/** * <p>//from ww w . ja va 2 s .c om * ???,? * </p> * * @param scanPackages * ??package * @return */ public static Set<String> findPackageClass(String scanPackages) { Set<String> clazzSet = new HashSet<String>(); ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver(); MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver); String pkg = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(scanPackages) + "/**/*.class"; /* * ??Resource * ClassLoader.getResource("META-INF")????????? */ try { Resource[] resources = resolver.getResources(pkg); if (resources != null && resources.length > 0) { for (Resource resource : resources) { if (resource.isReadable()) { MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource); if (metadataReader != null) { clazzSet.add(metadataReader.getClassMetadata().getClassName()); } } } } } catch (Exception e) { e.printStackTrace(); } return clazzSet; }
From source file:gov.nih.nci.cabig.caaers.domain.DomainObjectTest.java
private List<Class> findMyTypes(String basePackage) throws IOException, ClassNotFoundException { ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resourcePatternResolver); List<Class> candidates = new ArrayList<Class>(); String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + resolveBasePackage(basePackage) + "/" + "**/*.class"; Resource[] resources = resourcePatternResolver.getResources(packageSearchPath); for (Resource resource : resources) { if (resource.isReadable()) { MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource); if (isCandidate(metadataReader)) candidates.add(Class.forName(metadataReader.getClassMetadata().getClassName())); }//from ww w . ja v a 2 s.c o m } return candidates; }
From source file:com.fantasy.Application.java
private static List<Class> findTypes(String basePackage) throws IOException, ClassNotFoundException { ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resourcePatternResolver); List<Class> candidates = new ArrayList(); String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + resolveBasePackage(basePackage) + "/" + "**/*.class"; Resource[] resources = resourcePatternResolver.getResources(packageSearchPath); for (Resource resource : resources) { if (resource.isReadable()) { MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource); if (isCandidate(metadataReader)) { candidates.add(Class.forName(metadataReader.getClassMetadata().getClassName())); }// w ww .j a va 2 s.c o m } } return candidates; }
From source file:com.agileapes.couteau.maven.resource.ClassPathScanningClassProvider.java
public ClassPathScanningClassProvider(boolean detectInsideJarFiles) { super(false); metadataReaderFactory = new CachingMetadataReaderFactory(getResourceLoader()); if (detectInsideJarFiles) { this.classpathUrlPrefix = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX; }//w ww .j av a 2s .co m }
From source file:com.zht.common.generator.util.LoadPackageClasses.java
/** * ??BeanClass??/*from w w w .j a v a2s. c om*/ * @return * @throws IOException * @throws ClassNotFoundException */ public Set<Class<?>> getClassSet() throws IOException, ClassNotFoundException { this.classSet.clear(); if (!this.packagesList.isEmpty()) { for (String pkg : this.packagesList) { String pattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(pkg) + RESOURCE_PATTERN; Resource[] resources = this.resourcePatternResolver.getResources(pattern); MetadataReaderFactory readerFactory = new CachingMetadataReaderFactory( this.resourcePatternResolver); for (Resource resource : resources) { if (resource.isReadable()) { MetadataReader reader = readerFactory.getMetadataReader(resource); String className = reader.getClassMetadata().getClassName(); if (matchesEntityTypeFilter(reader, readerFactory)) { this.classSet.add(Class.forName(className)); } } } } } // // if (logger.isInfoEnabled()){ // for (Class<?> clazz : this.classSet) { // //logger.info(String.format("Found class:%s", clazz.getName())); // } // } return this.classSet; }
From source file:com.sesxh.hoschange.common.util.LoadPackageClasses.java
/** * ??BeanClass??/*www . j a v a2s. c om*/ * * @return * @throws IOException * @throws ClassNotFoundException */ public Set<Class<?>> getClassSet() throws IOException, ClassNotFoundException { this.classSet.clear(); if (!this.packagesList.isEmpty()) { for (String pkg : this.packagesList) { String pattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(pkg) + RESOURCE_PATTERN; Resource[] resources = this.resourcePatternResolver.getResources(pattern); MetadataReaderFactory readerFactory = new CachingMetadataReaderFactory( this.resourcePatternResolver); for (Resource resource : resources) { if (resource.isReadable()) { MetadataReader reader = readerFactory.getMetadataReader(resource); String className = reader.getClassMetadata().getClassName(); if (matchesEntityTypeFilter(reader, readerFactory)) { this.classSet.add(Class.forName(className)); } } } } } // // if (logger.isInfoEnabled()){ // for (Class<?> clazz : this.classSet) { // //logger.info(String.format("Found class:%s", clazz.getName())); // } // } return this.classSet; }
From source file:cn.wanghaomiao.seimi.core.SeimiScanner.java
@SafeVarargs public final Set<Class<?>> scan(String[] confPkgs, Class<? extends Annotation>... annotationTags) { Set<Class<?>> resClazzSet = new HashSet<>(); List<AnnotationTypeFilter> typeFilters = new LinkedList<>(); if (ArrayUtils.isNotEmpty(annotationTags)) { for (Class<? extends Annotation> annotation : annotationTags) { typeFilters.add(new AnnotationTypeFilter(annotation, false)); }/* w w w. j av a2 s . co m*/ } if (ArrayUtils.isNotEmpty(confPkgs)) { for (String pkg : confPkgs) { String pattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + String.format(RESOURCE_PATTERN, ClassUtils.convertClassNameToResourcePath(pkg)); try { Resource[] resources = this.resourcePatternResolver.getResources(pattern); MetadataReaderFactory readerFactory = new CachingMetadataReaderFactory( this.resourcePatternResolver); for (Resource resource : resources) { if (resource.isReadable()) { MetadataReader reader = readerFactory.getMetadataReader(resource); String className = reader.getClassMetadata().getClassName(); if (ifMatchesEntityType(reader, readerFactory, typeFilters)) { Class<?> curClass = Thread.currentThread().getContextClassLoader() .loadClass(className); context.register(curClass); resClazzSet.add(curClass); } } } } catch (Exception e) { logger.error("?????[{}][{}]", pattern, StringUtils.join(typeFilters, ",")); } } } if (!context.isActive()) { context.refresh(); } return resClazzSet; }