当前位置: 首页>>代码示例>>Java>>正文


Java PackageNamesScanner类代码示例

本文整理汇总了Java中org.glassfish.jersey.server.internal.scanning.PackageNamesScanner的典型用法代码示例。如果您正苦于以下问题:Java PackageNamesScanner类的具体用法?Java PackageNamesScanner怎么用?Java PackageNamesScanner使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


PackageNamesScanner类属于org.glassfish.jersey.server.internal.scanning包,在下文中一共展示了PackageNamesScanner类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getAnnotatedClasses

import org.glassfish.jersey.server.internal.scanning.PackageNamesScanner; //导入依赖的package包/类
/**
 * Scans all classes accessible from the context class loader which belong to the given package and subpackages.
 * @param pckg package name
 * @param annotation Annotation to search
 * @return The classes
 */
static public List<Class<?>> getAnnotatedClasses(Package pckg, Class<? extends Annotation> annotation) {
    final AnnotationAcceptingListener annotationAcceptingListener = new AnnotationAcceptingListener(annotation);
    try (final PackageNamesScanner scanner = new PackageNamesScanner(new String[] { pckg.getName() }, true)) {
        while (scanner.hasNext()) {
            final String next = scanner.next();
            if (annotationAcceptingListener.accept(next)) {
                try (final InputStream in = scanner.open()) {
                    annotationAcceptingListener.process(next, in);
                } catch (IOException e) {
                    throw new RuntimeException("AnnotationAcceptingListener failed to process scanned resource: "
                            + next);
                }
            }
        }
    }

    return annotationAcceptingListener.getAnnotatedClasses()
            .stream().collect(Collectors.toCollection(ArrayList::new));
}
 
开发者ID:yahoo,项目名称:elide,代码行数:26,代码来源:ClassScanner.java

示例2: findEntityClassesFromDirectory

import org.glassfish.jersey.server.internal.scanning.PackageNamesScanner; //导入依赖的package包/类
private static ImmutableList<Class<?>> findEntityClassesFromDirectory(String path, String... paths) {
    @SuppressWarnings("unchecked")
    final AnnotationAcceptingListener asl = new AnnotationAcceptingListener(Entity.class);
    final PackageNamesScanner scanner = new PackageNamesScanner(merge(path, paths), true);

    while (scanner.hasNext()) {
        final String next = scanner.next();
        if (asl.accept(next)) {
            try (final InputStream in = scanner.open()) {
                asl.process(next, in);
            } catch (IOException e) {
                throw new RuntimeException("AnnotationAcceptingListener failed to process scanned resource: " + next);
            }
        }
    }

    final ImmutableList.Builder<Class<?>> builder = ImmutableList.builder();
    asl.getAnnotatedClasses().forEach(builder::add);

    return builder.build();
}
 
开发者ID:scottescue,项目名称:dropwizard-entitymanager,代码行数:22,代码来源:ScanningEntityManagerBundle.java

示例3: scan

import org.glassfish.jersey.server.internal.scanning.PackageNamesScanner; //导入依赖的package包/类
/**
 * <p>scan.</p>
 */
public void scan() {
    final PackageNamesScanner scanner = new PackageNamesScanner(
            scanPkgs.toArray(new String[scanPkgs.size()]), true);
    while (scanner.hasNext()) {
        String fileName = scanner.next();
        if (!fileName.endsWith(".class")) continue;
        ClassInfo info = new ClassInfo(fileName) {

            InputStream in;

            @Override
            public InputStream getFileStream() {
                if (in == null) {
                    in = scanner.open();
                }
                return in;
            }

            @Override
            public void closeFileStream() {
                closeQuietly(in);
            }
        };
        String className = info.getCtClass().getName();
        if (!foundClasses.contains(className)) {
            ClassFoundEvent event = new ClassFoundEvent(info);
            SystemEventBus.publish(event);
            info.closeFileStream();

            if (event.accept) {
                acceptClasses.add(className);
            }
        }
        foundClasses.add(className);
    }
}
 
开发者ID:icode,项目名称:ameba,代码行数:40,代码来源:PackageScanner.java

示例4: AbstractRestApplication

import org.glassfish.jersey.server.internal.scanning.PackageNamesScanner; //导入依赖的package包/类
protected AbstractRestApplication(Class<? extends AbstractRestApplication> applicationClass) {
	super(applicationClass);
	
	register(JacksonJsonProvider.class);
	
	registerFinder(new PackageNamesScanner(new String[] { applicationClass.getPackage().getName() }, true));
}
 
开发者ID:openwide-java,项目名称:owsi-core-parent,代码行数:8,代码来源:AbstractRestApplication.java


注:本文中的org.glassfish.jersey.server.internal.scanning.PackageNamesScanner类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。