public static boolean hasClassAnnotation(Class<? extends Annotation> annotationType, byte[] classData) { return hasClassAnnotation(annotationType, new ClassReader(classData)); }
public static boolean hasClassAnnotation(Class<? extends Annotation> annotationType, InputStream classData) throws IOException { return hasClassAnnotation(annotationType, new ClassReader(classData)); }
@Override public void visit(String resource, URL url, ClassLoader cl) { if (!isClassFile(resource)) return; final String className = ClassLoaderUtil.resourceToClass(resource); try (InputStream is = cl.getResourceAsStream(resource)) { if (AnnotationUtil.hasClassAnnotation(Upgrade.class, is)) { LOG.debug("Upgrade of class {} (annotated)", className); builder.add(className); } } catch (IOException e) { throw new RuntimeException("Exception while scanning class " + className + " for Upgrade annotation", e); } } });
@Override public final void visit(String resource, URL url, ClassLoader cl) { if (!ClassLoaderUtil.isClassFile(resource)) return; final String className = ClassLoaderUtil.resourceToClass(resource); try (final InputStream is = cl.getResourceAsStream(resource)) { if (AnnotationUtil.hasClassAnnotation(WebActor.class, is)) registerWebActor(cl.loadClass(className)); } catch (final IOException | ClassNotFoundException e) { log.error("Exception while scanning class " + className + " for WebActor annotation", e); throw new RuntimeException(e); } }