Skip to content

Conversation

@mkouba
Copy link
Contributor

@mkouba mkouba commented Dec 4, 2025

  • to support very large deployments
  • we use the same strategy for beans, observers and removedBeans
  • first we split the processing into multiple groups; each group is represented by a static method
  • several groups belong to a container class
  • static methods are invoked either directly from the ComponentsProvider or from a dedicated lambda

@mkouba mkouba requested review from Ladicek and gsmet December 4, 2025 14:40
@quarkus-bot quarkus-bot bot added the area/arc Issue related to ARC (dependency injection) label Dec 4, 2025
@mkouba
Copy link
Contributor Author

mkouba commented Dec 4, 2025

FTR the container classes are necessary because of the constant pool limit.

Copy link
Contributor

@Ladicek Ladicek left a comment

Choose a reason for hiding this comment

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

This is obviously OK (when I diff with whitespace disabled).

My only objection is that the secondary grouping is way too ugly compared to the primary grouping; it should be done the same way, also in preprocess().

Copy link
Member

@gsmet gsmet left a comment

Choose a reason for hiding this comment

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

I added a small comment but feel free to ignore if you have a strong opinion. My point is that we should avoid splitting in the relatively standard case that used to work before.

I kinda agree with @Ladicek that we should make the splitting as consistent as possible.

@mkouba
Copy link
Contributor Author

mkouba commented Dec 4, 2025

I kinda agree with @Ladicek that we should make the splitting as consistent as possible.

@gsmet I'm not sure what this sentence actually means?

@Ladicek
Copy link
Contributor

Ladicek commented Dec 4, 2025

I kinda agree with @Ladicek that we should make the splitting as consistent as possible.

@gsmet I'm not sure what this sentence actually means?

I'm not sure either, but if we did what I suggested on Zulip (split the bean graph into components and make sure the entire component is generated in a single method), we might get slight performance benefits of avoiding map lookups and using values directly. But I'm not sure how big those benefits would be.

@gsmet
Copy link
Member

gsmet commented Dec 4, 2025

@gsmet I'm not sure what this sentence actually means?

Sorry it was a reference to the excessive nitpicking on grouping :).

I'm perfectly fine with the general approach.

- to support very large deployments
- we use the same strategy for beans, observers and removedBeans
- first we split the processing into multiple groups; each group is
represented by a static method
- several groups belong to a container class
- static methods are invoked either directly from the ComponentsProvider
or from a dedicated lambda
@mkouba mkouba force-pushed the arc-components-provider-split branch from 110e4c6 to 1acb03a Compare December 5, 2025 07:46
@mkouba mkouba added the triage/waiting-for-ci Ready to merge when CI successfully finishes label Dec 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/arc Issue related to ARC (dependency injection) triage/waiting-for-ci Ready to merge when CI successfully finishes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants