本文整理汇总了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;未经允许,请勿转载。 |
请发表评论