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 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 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