-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SmallRye Reactive Messaging - Kafka depends on Hibernate Reactive but is built before it #31446
Comments
/cc @DavideD (hibernate-reactive), @Ladicek (smallrye), @alesj (kafka), @cescoffier (kafka,reactive-messaging), @gavinking (hibernate-reactive), @jmartisk (smallrye), @ozangunalp (kafka,reactive-messaging), @phillip-kruger (smallrye), @radcortez (smallrye) |
@Sanne SmallRye Reactive Messaging - Kafka runtime has optional dependencies for redis-client, hibernate-reactive and hibernate-orm runtime modules. But the SmallRye Reactive Messaging - Deployment module doesn't have any of those dependencies. |
Are you sure the hibernate-reactive extension doesn't get activated during integration tests? I had a failure earlier which clearly was triggered by me making changes to both the Hibernate Reactive Runtime and Deployment modules; so the order looks suspicious to me as Maven recognized the need to rebuild the HR runtime module first, but not the matching deployment. Remember that in Quarkus the deployment modules get pulled in automatically to match their runtime counterparts, but Maven doesn't know about it. This is handled by our customizations, therefore it's not automatic but we need to handle the order with care, and sometimes add an artificial dependency to ensure correct order of build is defined. Unfortunately since I'm working with snapshtos it's hard to try reproduce the earlier error, but the order looks wrong to me - it would certainly be safer to ensure that Runtime and Deployment modules of each extension are not build "interleaved". You need something like this: Alternatively, get rid of the optional dependency and move that into a dedicated module which provides the bridge code and depends on both. Optional dependency are a pain to maintain ;) |
I knew about the deployment modules getting pulled in, but didn't imagine it would cause such an issue, especially since the deployment modules are not really dependent. Did you have that using --also-make ? There are IT modules testing hibernate-orm with smallrye-reactive-kafka and hibernate-reactive with smallrye-reactive-kafka. But the I know optional dependencies are hard. But sometimes it is practical :) At least they are in the same repo. |
Right, when making changes to some module I run the tests targeting the patched modules with
Ok, as you prefer :) |
Ok, I think I have a lead for the problem. Those integration tests use panache dependencies and so adds its |
The easiest way I can think of to force the build order is to add a test dependency from reactive-messaging-kafka-deployment to other deployment modules. |
@ozangunalp any update on this one? |
Sorry I forgot about this. Did some tests and opened #36070 |
Describe the bug
The build order is currently defined by Maven Reactor as:
This results in tricky problems during the maintenance and development of Quarkus; not sure if it also affects releases.
Expected behavior
No response
Actual behavior
No response
How to Reproduce?
No response
Output of
uname -a
orver
No response
Output of
java -version
No response
GraalVM version (if different from Java)
No response
Quarkus version or git rev
Current
main
at 1d45952Build tool (ie. output of
mvnw --version
orgradlew --version
)Apache Maven 3.8.7
Additional information
No response
The text was updated successfully, but these errors were encountered: