diff --git a/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientProcessor.java b/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientProcessor.java
index f1fae46d..d571493e 100644
--- a/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientProcessor.java
+++ b/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientProcessor.java
@@ -39,6 +39,8 @@ public class ClientProcessor extends AbstractProcessor {
private SimpleComponentWriter componentWriter;
private boolean readModuleInfo;
+ private boolean generateComponent;
+ private int rounds;
@Override
public SourceVersion getSupportedSourceVersion() {
@@ -56,6 +58,10 @@ public synchronized void init(ProcessingEnvironment processingEnv) {
@Override
public boolean process(Set extends TypeElement> annotations, RoundEnvironment round) {
+ if (generateComponent || round.errorRaised()) {
+ return false;
+ }
+ generateComponent = rounds++ > 0;
APContext.setProjectModuleElement(annotations, round);
final var platform = platform();
if (!(platform instanceof ClientPlatformAdapter)) {
@@ -65,13 +71,15 @@ public boolean process(Set extends TypeElement> annotations, RoundEnvironment
for (final Element controller : round.getElementsAnnotatedWith(typeElement(ClientPrism.PRISM_TYPE))) {
if (ClientPrism.getInstanceOn(controller).generate()) {
writeClient(controller);
+ generateComponent = false;
}
}
for (final var importedElement : round.getElementsAnnotatedWith(typeElement(ImportPrism.PRISM_TYPE))) {
writeForImported(importedElement);
+ generateComponent = false;
}
- writeComponent(round.processingOver());
+ writeComponent(generateComponent);
setPlatform(platform);
return false;
}
diff --git a/tests/pom.xml b/tests/pom.xml
index 92ff5b8b..74c6f5ec 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -16,7 +16,7 @@
3.27.6
2.20.1
3.3
- 12.0
+ 12.1-RC3
4.3.2
6.7.0