Hi Ravjit
I'm just a user of Dagger, so I would also be interested in whether there is an officially recommended solution to this. I can, however, share the workaround I am currently using. In order to be able to inject a MyComponent, I introduced an injectable singleton class BootstrapHelper which contains an Optional<MyComponent>. Immediately after creating the component, I grab its BootstrapHelper and set the contained component to the MyComponent instance just created.
That way, anything in the graph of provided types can just inject the BootstrapHelper and and get access to the component. The only thing which is a bit ugly is that it requires this stateful helper which needs to be initialized immediately after creating the component. Also, it's worth considering that injecting the component itself kind of indicates a bit of a smell and should probably be used very sparingly, so it could be that this "feature" was left out on purpose.
So as I said, it works even if it's not super pretty. But I would be interested in how the Dagger folks recommend solving this :)
Cheers
Dino