-
Notifications
You must be signed in to change notification settings - Fork 77
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
add SyntheticBeanBuilder.withInjectionPoint() #833
base: main
Are you sure you want to change the base?
Conversation
This is a draft, because it's very much not ready. The biggest open question is: does One way would be to say something like:
That is obviously a breaking change, but I don't see a better way that wouldn't be more breaking. |
👍 Although a breaking change it makes perfect sense IMO. |
What are you trying to fix by adding this? I don't see an explanation of the problem or a linked issue. |
In a build-time environment, such as Quarkus, injection point metadata has to be recorded for any |
What @mkouba says is just the reason why I'm submitting this PR now. The ultimate cause is feature parity -- Portable Extensions allow this, while Build Compatible Extensions do not. |
03541db
to
039589f
Compare
I eventually decided that this is something we should keep doing in Quarkus, outside of the specification. The spec should stay silent on this. |
Thanks @Ladicek for the explanation on the call. As I understand it now: With portable extensions, you can create a synthetic bean by implementing Other extensions can also modify the injection points by observing As far as I can see, there's no way to link an injection point to an injected dependent bean to allow the dependent bean to inspect where it's been injected. This PR would add equivalent functionality to build compatible extensions. Injection points can be added to the synthetic bean and will be validated by the container and available for other extensions to inspect with Additionally, Quarkus want the ability to do some additional out-of-spec optimisations (such as removing any beans which aren't needed), and having this functionality in build compatible extensions would add a way for the user to indicate that certain beans are used by their synthetic bean and can't be optimised away. |
Actually, let me push this PR back to draft, because there's a bit of a conflict we need to resolve: the Portable Extensions API allows this, but expect a direct implementation of |
No description provided.