Skip to content

Commit 4e10461

Browse files
committed
[Client] Generate Component Before the Last Round
Now if not on the first compilation round, checks whether there have been any processed jsonb annotations to generate a component. This prevents issues with `ModuleElement#getDirectives`
1 parent 9fdfd95 commit 4e10461

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

http-generator-client/src/main/java/io/avaje/http/generator/client/ClientProcessor.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ public class ClientProcessor extends AbstractProcessor {
3939

4040
private SimpleComponentWriter componentWriter;
4141
private boolean readModuleInfo;
42+
private boolean generateComponent;
43+
private int rounds;
4244

4345
@Override
4446
public SourceVersion getSupportedSourceVersion() {
@@ -56,6 +58,10 @@ public synchronized void init(ProcessingEnvironment processingEnv) {
5658

5759
@Override
5860
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment round) {
61+
if (generateComponent || round.errorRaised()) {
62+
return false;
63+
}
64+
generateComponent = rounds++ > 0;
5965
APContext.setProjectModuleElement(annotations, round);
6066
final var platform = platform();
6167
if (!(platform instanceof ClientPlatformAdapter)) {
@@ -65,13 +71,15 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
6571
for (final Element controller : round.getElementsAnnotatedWith(typeElement(ClientPrism.PRISM_TYPE))) {
6672
if (ClientPrism.getInstanceOn(controller).generate()) {
6773
writeClient(controller);
74+
generateComponent = false;
6875
}
6976
}
7077
for (final var importedElement : round.getElementsAnnotatedWith(typeElement(ImportPrism.PRISM_TYPE))) {
7178
writeForImported(importedElement);
79+
generateComponent = false;
7280
}
7381

74-
writeComponent(round.processingOver());
82+
writeComponent(generateComponent);
7583
setPlatform(platform);
7684
return false;
7785
}

0 commit comments

Comments
 (0)