A Common Style Across the MicroProfile Specs For Configuration

17 views
Skip to first unread message

Gordon Hutchison

unread,
Jun 20, 2019, 4:59:37 AM6/20/19
to Eclipse MicroProfile
Hi Folks, 
I have noticed that the different MicroProfile specs are introducing different
approaches and styles when it comes to configuration.

There are many cases, but just for example, we see properties like:    
  
   CircuitBreaker/enabled=false
   mp
.context.ManagedExecutor.maxQueued=10

...sometimes ‘manual’ support for overriding aspects that relate to a specific bit of user code:
e.g.

   @ConfigProperty(name="exec1.maxQueued", defaultValue="20") Integer q) {
     
return ManagedExecutor.builder()
       
.maxAsync(a)
...
   exec1.maxAsync=10


And sometimes this can be ‘baked into’ the spec:
   com.acme.test.MyClient/serviceA/Retry/maxDuration=3000
(but users who use this approach for a spec that does not have it will be confused it does not work perhaps)
etc.

We can't undo what is done already 
(though, especially for specs just growing their user community,
there is always a dual-old-new-style support/deprecation option)
but I think we need to stop making the styles used more and more diverged over time
and resolve a common style to converge on.
 
I have attempted to do this with:


This has been in review for some time and I have addressed all the concerns
that have been raised so far or split them out into separate issues.
                               
When users start to use, and configure, multiple specs for one microservice,
the mixed spec properties files they will write and read are going to look a bit
shonky unless we do something like this - so please support this effort.

If you are interested in this issue I would encourage you to add your
review to the PR or raise issues so I can progress them or merge the PR as a base for subsequent
issues. It is not covering new ground, just attempting to tidy where we
have already been. Thanks for any help.

Gordon.
Reply all
Reply to author
Forward
0 new messages