-
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
DevServices Support #14960
DevServices Support #14960
Conversation
What is a |
Awesome stuff! I'll try and play around with it tomorrow |
https://www.testcontainers.org/ I could do it directly using docker but would likely end up just reimplementing a lot of what is there |
@@ -481,14 +481,12 @@ | |||
<exclude>io.rest-assured:*</exclude> | |||
<exclude>org.assertj:*</exclude> | |||
<exclude>org.junit.jupiter:*</exclude> | |||
<exclude>org.testcontainers:*</exclude> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suppose you removed it because it pops up as a transitive dependency in many places now?
I wonder whether we can keep it by making the rule non-transitive? This would still cover the main problem that #13919 tried to address.
ce9a38c
to
2922d82
Compare
2922d82
to
becc4ff
Compare
This looks really nice and we are really looking forward to this (and we can stop developing our own extension which we created with the same purpose). Question: AFAICT MSSQL is the only built-in database kind which doesn't have DevDB support. Will that still be includee in this PR? |
becc4ff
to
66ede6d
Compare
I am not sure about the licensing for MSSQL and DB2, technically it is easy to do, but I need to investigate how to handle the legalities around accepting the EULA. |
I see. As you have probably seen Testcontainers requires placing a I suppose it should be easy for us to supply our own DevDB support for MSSQL (for our own Quarkus applications) in case you can't work the legalities out just yet. |
That approach is probably fine. I will check, but either way I will hold off until the initial PR is merged. |
226761b
to
c1203d1
Compare
independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/app/AugmentAction.java
Show resolved
Hide resolved
...tasource/deployment/src/main/java/io/quarkus/datasource/deployment/devdb/DevDBProcessor.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3416f08
to
366a9b4
Compare
Hopefully the log CI issues are fixed now. At the moment the container logs display before the banner, but I can fix that if needed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reviewed the doc a bit and suggested a few improvements.
@@ -382,6 +403,10 @@ quarkus.datasource.inventory.jdbc.max-size=12 | |||
Notice there is an extra bit in the key. | |||
The syntax is as follows: `quarkus.datasource.[optional name.][datasource property]`. | |||
|
|||
NOTE: Even when only one database extension is installed named databases need to specify at least one build time | |||
property so that Quarkus knows they exist. Generally this will be the `db-kind` property, although you can also |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, typically, that's one of the reasons why I didn't like having db-kind
being optional. I'm still not convinced it's a good idea. I suppose we will see...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason why I think it is ok is that the single DB + single driver is the 99% use case, and we can effectively make this configuration free.
af8ecf2
to
9884fc8
Compare
Doc fixes applied. |
9884fc8
to
ebea896
Compare
What else is required to get this in? |
This is the highlight of the next release and the more baking time we have the better. |
...tasource/runtime/src/main/java/io/quarkus/datasource/runtime/DevServicesBuildTimeConfig.java
Outdated
Show resolved
Hide resolved
DevServices allows for zero configuration databases in dev and test mode, either starting the databases using testcontainers, or creating them in process.
baf9eb6
to
88172b7
Compare
I applied the latest suggestions, rebased and squashed. Let's wait for CI and merge. |
DevServices allows for zero configuration databases in dev
and test mode, either starting the databases using
testcontainers, or creating them in process.