in src/it/MCOMPILER-395-processorpath-exclude-deps/annotation-processor/src/main/java/mcompiler395/SimpleAnnotationProcessor.java [44:80]
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
if (annotations.isEmpty()) {
return true;
}
// assert that mcompiler395-annotation-processor-dep is NOT on the processorpath, since it is excluded
// in the plugin configuration
try {
getClass().getClassLoader().loadClass("mcompiler395.AnnotationProcessorDependency");
throw new RuntimeException("Expected a ClassNotFoundException, because "
+ "mcompiler395.AnnotationProcessorDependency is not supposed to be on the processorpath.");
} catch (ClassNotFoundException expected) {
// expected
}
Filer filer = processingEnv.getFiler();
Elements elementUtils = processingEnv.getElementUtils();
Set<? extends Element> elements =
roundEnv.getElementsAnnotatedWith(annotations.iterator().next());
for (Element element : elements) {
Name name = element.getSimpleName();
PackageElement packageElement = elementUtils.getPackageOf(element);
try {
Name packageName = packageElement.getQualifiedName();
FileObject resource =
filer.createResource(StandardLocation.SOURCE_OUTPUT, packageName, name + ".txt", element);
Writer writer = resource.openWriter();
writer.write(name.toString());
writer.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return !elements.isEmpty();
}