microcks / microcks-quarkus

Quarkus extension that enables embedding Microcks as a DevService managing mocks for dependencies and contract-testing your API endpoints
https://microcks.io
Apache License 2.0
15 stars 3 forks source link

Live reloading of mock changes while in quarkus dev mode #35

Closed rquinio1A closed 6 months ago

rquinio1A commented 6 months ago

Reason/Context

While in quarkus:dev mode, changes to openapi-metadata.yaml file are not taken into account live, and you have to:

Description

It would be great if the extension would watch for changes in the mock files it has discovered, like other Quarkus extensions do. The mocks should reload lazily:

Implementation ideas

If it's fast, the simpler might be to drop and re-apply all the mocks even if the ones that have not changed, as un-merging primary + secondary artifacts could be tricky ?

github-actions[bot] commented 6 months ago

👋 @rquinio1A

Welcome to the Microcks community! 💖

Thanks and congrats 🎉 for opening your first issue here! Be sure to follow the issue template or please update it accordingly.

📢 If you're using Microcks in your organization, please add your company name to this list. 🙏 It really helps the project to gain momentum and credibility. It's a small contribution back to the project with a big impact.

If you need to know why and how to add yourself to the list, please read the blog post "Join the Microcks Adopters list and Empower the vibrant open source Community 🙌"

Hope you have a great time there!

lbroudoux commented 6 months ago

Thanks for opening the issue @rquinio1A! This is a good idea.

Would you have in mind another Quarkus DevServices that is doing such live-reloading stuff? It could help me to figure out how to implement this.

rquinio1A commented 6 months ago

Seems it has to do with HotDeploymentWatchedFileBuildItem, found this example: https://github.com/quarkiverse/quarkus-logging-logback/blob/934775dc2fc579108486bc4d40ca120a9d7887eb/impl/deployment/src/main/java/io/quarkiverse/logging/logback/deployment/LoggingLogbackProcessor.java#L80-L83

Also these general doc pointers might help:

lbroudoux commented 6 months ago

We need first to apply #37 to have access to https://github.com/microcks/microcks-testcontainers-java/issues/45