<div dir="ltr"><div dir="ltr">I see it has been partially fixed in a later version, and that the problem only occurs if the service impl is generated in the last round. I can tolerate not being able to explicitly see the `provides` statements, but it's still a problem if merely calling `ModuleElement.getDirectives` causes compilation to fail if services are generated in the last round. Is there a way that we can make the behavior the same except not failing compilation? (Currently I can see the requires just fine but the compilation is doomed to fail)<input name="virtru-metadata" type="hidden" value="{"email-policy":{"disableCopyPaste":false,"disablePrint":false,"disableForwarding":false,"enableNoauth":false,"expandedWatermarking":false,"expires":false,"sms":false,"expirationNum":1,"expirationUnit":"days","isManaged":false,"persistentProtection":false},"attachments":{},"compose-id":"1","compose-window":{"secure":false}}"></div><br><div class="gmail_quote" style=""><div dir="ltr" class="gmail_attr">On Mon, Aug 28, 2023 at 2:05 PM Jonathan Gibbons <<a href="mailto:jonathan.gibbons@oracle.com">jonathan.gibbons@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p><a href="https://bugs.openjdk.org/browse/JDK-8315125" target="_blank">https://bugs.openjdk.org/browse/JDK-8315125</a></p>
<p>-- Jon<br>
</p>
<div>On 8/28/23 8:50 AM, Jonathan Gibbons
wrote:<br>
</div>
<blockquote type="cite">
<p>I'll file a JBS issue to track this further.</p>
<p>-- Jon</p>
<p><br>
</p>
<div>On 8/28/23 8:35 AM, Josiah Noel
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">Just tried explicitly adding a default
constructor, but I still receive the same error.</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Mon, Aug 28, 2023 at
11:29 AM Jonathan Gibbons <<a href="mailto:jonathan.gibbons@oracle.com" target="_blank">jonathan.gibbons@oracle.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>The following error message seems relevant:</p>
<pre style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.6px;margin-top:0px;margin-bottom:16px;padding:16px;overflow:auto;line-height:1.45;color:rgb(31,35,40);border-radius:6px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration:none"><code style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.6px;padding:0px;margin:0px;white-space:pre-wrap;background:none;border-radius:6px;word-break:normal;border:0px;display:inline;overflow:visible;line-height:inherit">/M:/Dev/module-directive-bug/blackbox-test-module/src/main/java/module-info.java:[6,41] the service implementation does not have
a default constructor: io.avaje.modules.example.GeneratedProvider</code></pre>
<div>-- Jon</div>
<div><br>
</div>
<div><br>
</div>
<div>On 8/26/23 1:04 PM, Josiah Noel wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">As requested, I have created a
simple example to replicate this issue. <a href="https://urldefense.com/v3/__https://github.com/SentryMan/module-directive-bug/tree/master__;!!ACWV5N9M2RV99hQ!O3CMUWVsFHaaU7b9D1x_-4ByzBUrMMF0KeTPmtdnqOC1hRhhZCBO0dODJwf1rZsapQpTYmYktzo5W_0TwANTUZuu$" target="_blank">SentryMan/module-directive-bug:
showcase annotation processing bug
(github.com)</a></div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Aug 25,
2023 at 9:00 PM Josiah Noel <<a href="mailto:josiahnoel@gmail.com" target="_blank">josiahnoel@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Say I got this module
<div><br>
</div>
<div>```</div>
<div>
<div style="background-color:rgb(28,31,34);padding:0px 0px 0px 2px">
<div style="color:rgb(199,205,209);font-family:Consolas;white-space:pre-wrap"><p style="margin:0px"><span style="color:rgb(255,0,127)">module</span><span style="color:rgb(207,191,173)"> nima.example {</span></p><p style="margin:0px"><span style="color:rgb(207,191,173)"> </span><span style="color:rgb(255,0,127)">requires</span><span style="color:rgb(207,191,173)"> io.avaje.http.client;</span></p><p style="margin:0px"><span style="color:rgb(207,191,173)"> </span><span style="color:rgb(255,0,127)">requires</span><span style="color:rgb(207,191,173)"> io.avaje.http.api;</span></p><p style="margin:0px"><span style="color:rgb(207,191,173)"> </span><span style="color:rgb(255,0,127)">provides</span><span style="color:rgb(207,191,173)"> io.</span><span style="color:rgb(82,227,246)">avaje</span><span style="color:rgb(207,191,173)">.</span><span style="color:rgb(82,227,246)">http</span><span style="color:rgb(207,191,173)">.client.</span><span style="color:rgb(82,227,246)">HttpClient</span><span style="color:rgb(207,191,173)">.</span><span style="color:rgb(82,227,246)">GeneratedComponent</span><span style="color:rgb(207,191,173)"> </span><span style="color:rgb(255,0,127)">with</span></p><p style="margin:0px"><span style="color:rgb(207,191,173)"> com.jojo.helidon.api.client.httpclient.</span><span style="color:rgb(82,227,246)">GeneratedHttpComponent</span><span style="color:rgb(207,191,173)">;</span></p><p style="margin:0px"><span style="color:rgb(207,191,173)">}</span></p></div>
</div>
</div>
<div>```</div>
<div>and I generate <span style="font-family:Consolas;white-space:pre-wrap;background-color:rgb(28,31,34);color:rgb(207,191,173)">com.jojo.helidon.api.client.httpclient.</span><span style="font-family:Consolas;white-space:pre-wrap;background-color:rgb(28,31,34);color:rgb(82,227,246)">GeneratedHttpComponent</span> in
the last round of processing. When
I get the module element during
normal processing and so much as
call `ModuleElement#getDirectives`
and do nothing else, the processor
will correctly generate, but
compilation will still fail.(if I
take out the module-info from the
project it works though) I'm
pretty sure it might have to do
with the fact that <span style="color:rgb(82,227,246);font-family:Consolas;white-space:pre-wrap;background-color:rgb(28,31,34)">GeneratedHttpComponent</span> is
created in the last round. Even
so, not sure why it fails the
compilation.</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</blockquote>
</blockquote>
</div>
</blockquote></div></div>