Create startup proxy service in core
A couple of times, we've run into the issue of allowing startup beans to be generated by a provider, but it doesn't seem to work with out-of-the-box Quarkus. To get around this, we will create a StartupProxyService that will consume services that should be startup and call an arbitrary method on them to ensure that the service is initialized. In support of this, a new interface should be created with a single method that only logs that the service was started in the Startup phase. This method is required as the Quarkus CDI system is lazy by default. This startup proxy interface can then be targeted using the
Instance iterator (see Persistence Filter service for example) and looped over in a post-construct event in the StartupProxyService and initialized through the method call.
For testing this, I would make a use case that uses the providers as mentioned and use a QuarkusTestProfile to switch between the 2 implementations. This can be as easy as one service returns a string "foo" and the other "bar", as we just want to be sure that this implementation works with providers as expected and avoid regressions.