Skip to content
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

Dev UI indicate properties set by DevServices #19541

Merged
merged 1 commit into from
Aug 28, 2021
Merged

Dev UI indicate properties set by DevServices #19541

merged 1 commit into from
Aug 28, 2021

Conversation

phillip-kruger
Copy link
Member

As discussed here #18597 (comment)

This PR adds a way to indicate what configuration is been automatically set by DevServices.
It also give an easy way to copy this to application.properties for %test and %prod.
This also added a way to narrow the config screen to configuration of a certain extension and added a basic raw editor.

For now this is a draft to get some feedback.

See this video for a walkthrough:

simplescreenrecorder-2021-08-20_15.29.43.mp4

Signed-off-by: Phillip Kruger [email protected]

@phillip-kruger
Copy link
Member Author

Small UI changes as per feedback on Zulip:

image

@quarkus-bot quarkus-bot bot added the area/dependencies Pull requests that update a dependency file label Aug 20, 2021
Copy link
Member

@stuartwdouglas stuartwdouglas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@maxandersen
Copy link
Member

what happens if user have yaml configs ? does that "just work" ?

@phillip-kruger
Copy link
Member Author

As I mentioned in the video, I do not think yaml is supported, even in the form editor. I have not tested it, but from the code it does not look like it. I can have a look at that in another PR ?

@maxandersen
Copy link
Member

makes sense @phillip-kruger - the config viewer supports both so its unfortunate if edit falls apart on that. but sure - separate PR/effort for that makes sense.

@phillip-kruger
Copy link
Member Author

phillip-kruger commented Aug 23, 2021

@maxandersen - If you say config viewer do you mean the current form editor ? It might be able to read from application.yml , but from the code it seems like the save will always create an application.properties. I did not test that to confirm though.
see

@gsmet
Copy link
Member

gsmet commented Aug 23, 2021

Small nitpick: if the button are round, you need a bit of space between them (i.e. between the cross from the form, then the Dev Services button and then the third one). Other than that, nice improvement!

@phillip-kruger
Copy link
Member Author

Thanks @gsmet ! I'll update with a space

@phillip-kruger
Copy link
Member Author

Peek 2021-08-25 13-04

@gsmet See updated screen ^^^ - Ready for review.

@quarkus-bot
Copy link

quarkus-bot bot commented Aug 25, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 9767678

Status Name Step Test failures Logs Raw logs
JVM Tests - JDK 11 Build Test failures Logs Raw logs
JVM Tests - JDK 11 Windows Build Test failures Logs Raw logs
JVM Tests - JDK 16 Build Test failures Logs Raw logs

Full information is available in the Build summary check run.

Test Failures

⚙️ JVM Tests - JDK 11 #

📦 extensions/vertx-http/deployment

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorBodyHandlerTest.testChangeHttpRoute line 34 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.valid...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testChangeHttpRoute line 27 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCa...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testSetEmptyValue line 49 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.valid...

⚙️ JVM Tests - JDK 11 Windows #

📦 extensions/vertx-http/deployment

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorBodyHandlerTest.testChangeHttpRoute line 34 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCa...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testChangeHttpRoute line 27 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.valid...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testSetEmptyValue line 49 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.valid...

⚙️ JVM Tests - JDK 16 #

📦 extensions/vertx-http/deployment

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorBodyHandlerTest.testChangeHttpRoute line 34 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validate...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testChangeHttpRoute line 27 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallS...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testSetEmptyValue line 49 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validate...

@quarkus-bot
Copy link

quarkus-bot bot commented Aug 25, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 9767678

Status Name Step Test failures Logs Raw logs
JVM Tests - JDK 11 Build Test failures Logs Raw logs
JVM Tests - JDK 11 Windows Build Test failures Logs Raw logs
JVM Tests - JDK 16 Build Test failures Logs Raw logs

Full information is available in the Build summary check run.

Test Failures

⚙️ JVM Tests - JDK 11 #

📦 extensions/vertx-http/deployment

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorBodyHandlerTest.testChangeHttpRoute line 34 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.valid...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testChangeHttpRoute line 27 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCa...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testSetEmptyValue line 49 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.valid...

⚙️ JVM Tests - JDK 11 Windows #

📦 extensions/vertx-http/deployment

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorBodyHandlerTest.testChangeHttpRoute line 34 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCa...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testChangeHttpRoute line 27 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.valid...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testSetEmptyValue line 49 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:59)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.valid...

⚙️ JVM Tests - JDK 16 #

📦 extensions/vertx-http/deployment

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorBodyHandlerTest.testChangeHttpRoute line 34 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validate...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testChangeHttpRoute line 27 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallS...

io.quarkus.vertx.http.devconsole.DevConsoleConfigEditorTest.testSetEmptyValue line 49 - More details - Source on GitHub

java.lang.AssertionError: 
1 expectation failed.
Expected status code <303> but was <200>.

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)
	at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validate...

Copy link
Member

@stuartwdouglas stuartwdouglas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a couple of comments:

  • Can we automate the config keys in the extension descriptor somehow? This is something that is easy to miss when updating things.
  • What is the use case for copying to a new profile, given that the dev service values are transient and different on each startup?

@phillip-kruger
Copy link
Member Author

Hi @stuartwdouglas

  • It would be great if we can get at least the quarkus config key automatically. I am not sure how to do it. (If you can guide me in the right direction that would be great) And then in some cases we have other config keys that apply, example the Microprofile and SmallRye config keys, and sometimes other config keys that applies to an extension, example the quarkus.datasource applies to spring data and security jpa, etc.
  • The use case is that you would change the value after the copy to your test and prod environment (since there is no DevService environment in these profiles). But at least you know what config you need and have an example of the value (as set by DevServices)

Let me know what you think. I am looking at the CI failure now.

Copy link
Member

@FroMage FroMage left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a great feature, and blog-worthy, congrats !

Agree with Stuart that it would be nice to automate, there must be a way to detect which config keys apply to which extensions, I think we do something similar during the Quarkus build to generate the all-config page?

Also agree with Philip that the use-case of knowing what properties are the minimum required by to run outside of dev mode is useful when wanting to deploy on staging/prod for the first time.

This config editor originally seemed like a gimmick but now I'm starting to think that between this and the build system that Stuart is discussing on quarkus-dev, we're on to being able to help new users do things that would just be a pain otherwise. Like, this is much simpler than writing IDE plugins for all existing IDEs for a config editor. I don't think we'll want to go all-in and also provide an integrated web IDE in Quarkus for the rest of the code, but since we can already direct from DEV UI to IDEs easily, I only regret that going from the IDE to the DEV UI isn't something we've solved. Like, instead of coding a config editor for Eclipse, it would be super nice if Eclipse would open the config editor page in the DEV UI instead, if it's running…

@stuartwdouglas
Copy link
Member

You know that you can press 'd' in the console to open the dev UI right?

@stuartwdouglas stuartwdouglas requested a review from gsmet August 27, 2021 00:56
@stuartwdouglas
Copy link
Member

I guess we can try and automate this later, but I would like to see what @gsmet thinks.

Copy link
Contributor

@gastaldi gastaldi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works as advertised! Good job!

One thing I'll suggest: would it be possible to move configuration properties that were specifically set to the top (or display them differently)? For example, I set quarkus.application.version=1.0 using the application.properties Online Text Editor but I had a hard time trying to find it when it navigated back to the Config Editor screen

@gastaldi
Copy link
Contributor

I had a hard time trying to find it when it navigated back to the Config Editor screen

Actually ignore that, just found out that the application.properties contents is already in the top.

@gsmet
Copy link
Member

gsmet commented Aug 28, 2021

I took the time to have a closer look and it's indeed a nice feature and I think we should merge it. One comment though (but not blocking, we can tweak things later), is it so obvious that the button allows to edit the configuration? I wonder if we should make it a bit more obvious.

@gsmet gsmet merged commit cc93165 into quarkusio:main Aug 28, 2021
@quarkus-bot quarkus-bot bot added this to the 2.3 - main milestone Aug 28, 2021
@phillip-kruger phillip-kruger deleted the dev-ui-extension-config branch August 30, 2021 06:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment