Replies: 3 comments 27 replies
-
ping @quarkusio/devtools |
Beta Was this translation helpful? Give feedback.
-
There could be different approaches here. The simplest one would probably be creating named sets of extension GAs (actually GACTs) and adding them to the platform JSON descriptors. Dev tools could then expose them to the users allowing to be selected, etc. I wanted to throw out a bit more sophisticated idea I explored once for consideration. Instead of configuring very precise (implementation-based) presets, we could consider more general technology “packs” (allowing alternative implementations, e.g. JDBC drivers, REST, etc). It’s also somewhat related to issues in [1] (where referencing specific extensions in codestart caused an incompatibility issue) and general extension set compatibility checking. E.g. we know that An extension pack then could be expressed as a set of capabilities that must be satisfied. It would still have some user-friendly name and be recorded in the platform metadata. E.g. an extension REST+CRUD pack could be configured as requiring capabilities: Again, given an extension catalog, we know which extensions provide these capabilities. We could either highlight to the user (or offer dropdowns, depending on the UI we come up with) the extensions to choose from to fulfill the chosen pack requirements or pre-select specific implementations. To be able to pre-select specific implementations though, we’d need to specify the default/preferred implementation choice of a given capability, unless a user has already selected one. This would have to be recorded in the platform metadata too. An advantage of this indirection is that if/when we switch from one preferred impl of a tech to another one (e.g. resteasy -> resteasy-reactive) we wouldn't have to go an update GAs everywhere. We'd simply update the preferred impl of a given capability in the metadata. And I think a similar approach could help with issues in [1]. Whatever the user chooses we’d still perform the capability requirements check for the selected extensions to make sure there are no conflicts and the requirements are satisfied. [1] #25384 |
Beta Was this translation helpful? Give feedback.
-
"It's easy to add a capability though. I think it'd be easier that way than supporting two alternative ways of defining these presets." if we do that it means we cannot add extensions that don't have capabilites and if we force it on all now everyone has to think really hard about what kind of capability they provide...and why would that not just end up being the exact extension id name for most ? I still think you would just use capablities when you actually share api/functionallity with multiple extensions ... extensions group should be able to be defined via explicit extensions + capability (with default choice if no other way to decide which of many). Otherwise its too narrow usage. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Starting a discussion about #24657
Beta Was this translation helpful? Give feedback.
All reactions